是否可以检查会话是否已创建?
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()
我正在尝试检查是否使用 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()