是否可以检查会话是否已创建?

Is it possible to check if a session has been created?

我正在尝试检查是否使用 telethon 库创建了一个新会话。

我的第一个想法是从 Telegram 获取警告消息(新访问:[...]),所以当我收到此类消息时,我知道另一台设备已连接到我的帐户。 我无法收到该消息,所以我尝试通过其他方式获取它:

chat = client.get_entity(777000) # Telegram chat id
print(chat)
for message in client.iter_messages(chat):
    print(message.text)

(这不是完整代码。)

我能检索到的唯一消息是确认码,但仅此而已我什么也做不了。

另一个想法是持续接收活动会话列表(使用 GetAuthorizationsRequest()),如果该列表发生变化,则意味着新设备已连接到我的帐户。但是连续向Telegram服务器发送请求方便吗?

我到处搜索,但找不到解决我问题的好方法。

感谢任何帮助。

在 Lonami 的帮助下,我解决了我的问题。 使用 client.iter_messages(chat),我只能查看消息,而我正在寻找的“消息”是 UpdateServiceNotification,所以我使用 events.Raw 来获取所有类型的更新。

代码如下:

from telethon.sync import TelegramClient, events
from telethon.tl.types import UpdateServiceNotification
api_id = 123456
api_hash = "42132142c132145ej"

with TelegramClient('anon', api_id, api_hash) as client:
   @client.on(events.Raw(func = lambda e: type(e) == UpdateServiceNotification))
   async def handler(event):
      print("New Login!")
   client.run_until_disconnected()