当我快速运行代码时,它被正确执行,但是当我尝试使用会话第二次运行它时,它给了我[服务器发送了一条ID为90454444的非常新的消息,忽略了] .
from telethon import TelegramClient, sync
api_id = '*******'
api_hash = "***********"
# create a new Telegram client using your own API credentials
phone_number = '********'
client = TelegramClient('session_name', api_id, api_hash)
# try to load an existing session
if client.start():
print('Session loaded successfully!')
else:
# if no session is found, log in with the OTP and save the session
client.send_code_request(phone_number)
code = input('Enter the code: ')
client.sign_in(phone_number, code)
client.start()
print('Session created successfully!')
# get the target chat or channel entity
entity = client.get_entity('******')
# get the list of messages
messages = client.get_messages(entity, limit=10)
# iterate over the messages and extract the desired information
for message in messages:
print(f'{message.sender.username} ({message.date}): {message.text}')
# disconnect the client
client.disconnect()
您也可能看到此错误为" Server sent a very old message with ID" "
这是Telethon的一个安全特性,不能被禁用旨在保护您免受重放攻击。
当此消息被错误地报告为"bug"时,最常见的模式似乎是:
- 您的系统时间错误
- 您正在使用的代理可能受到干扰。
- Telethon会话正在被使用或已被其他地方使用。确保从Telethon创建会话,而不是使用其他地方也一样。如果您需要使用相同的帐户从多个地方,登录和使用不同的会话为您需要的每个地方。
更改会话名称client = TelegramClient('other_session_name', api_id, api_hash)