You need to enable JavaScript to run this app. 如何使用Telethon检测Telegram账号是否有新会话被创建?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Telethon检测Telegram账号是否有新会话被创建?

方案1:监听官方安全通知消息(实时,无额外轮询开销)

你之前拉取777000账号消息拿不到新登录通知的原因是:777000仅负责发送登录验证码、账号状态变更类的核心验证消息,新设备登录的安全预警通知是由另一个官方账号Telegram(部分客户端显示为「Telegram通知」)发送的。
操作步骤:

  • 先确保账号的安全通知开关已开启:路径为「设置-隐私和安全-安全通知-新登录通知」,关闭的话官方不会推送对应消息
  • 用Telethon监听该官方账号的消息,过滤匹配关键词即可,代码示例:
from telethon import events, TelegramClient

api_id = 你的API_ID
api_hash = '你的API_HASH'
client = TelegramClient('session_name', api_id, api_hash)

# 匹配Telegram官方账号的新登录通知
@client.on(events.NewMessage(from_users='Telegram'))
async def handler(event):
    msg_text = event.raw_text
    if '新设备登录' in msg_text or 'New login' in msg_text:
        # 触发新登录逻辑,比如告警、下线操作等
        print(f"检测到新设备登录:{msg_text}")

client.start()
client.run_until_disconnected()

方案2:轮询活跃会话列表(稳定可靠,不依赖消息推送)

你提到的GetAuthorizationsRequest()方案是完全可行的,Telegram对这类低频次的查询请求容忍度很高,只要你把轮询间隔设置在1分钟以上,完全不会触发限流或风控,实际使用时设置5-10分钟的查询间隔就足够满足需求。
代码示例:

from telethon import TelegramClient
from telethon.tl.functions.account import GetAuthorizationsRequest
import time

api_id = 你的API_ID
api_hash = '你的API_HASH'
client = TelegramClient('session_name', api_id, api_hash)

async def check_new_login():
    old_auth_ids = set()
    # 初始化先拉取一次现有会话列表
    async with client:
        auths = await client(GetAuthorizationsRequest())
        old_auth_ids = {auth.hash for auth in auths.authorizations}
    
    while True:
        async with client:
            auths = await client(GetAuthorizationsRequest())
            current_auth_ids = {auth.hash for auth in auths.authorizations}
            new_auths = current_auth_ids - old_auth_ids
            if new_auths:
                print(f"检测到{len(new_auths)}个新设备登录")
                # 可以在这里加告警逻辑,也可以调用接口下线未知设备
                old_auth_ids = current_auth_ids
        # 每5分钟轮询一次
        time.sleep(300)

client.loop.run_until_complete(check_new_login())

内容的提问来源于stack exchange,提问作者SAL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 19:54:04