在尝试获取用户数据时,我陷入了Telethon错误。 首先,我从某些组收到新消息,没关系,但是当我尝试获取用户数据(名称,first_name等)时-有时还可以,但大多数失败并显示错误
ValueError: Could not find the input entity for "12345678".
Please read https://telethon.readthedocs.io/en/latest/extra/basic/entities.html
to find out more details.
我阅读了该文章很多次,尝试也使用 client.get_input_entity ,但没有帮助
这是我的代码:
import logging
from telethon import TelegramClient, events
logging.basicConfig(level=logging.WARNING)
logging.getLogger('asyncio').setLevel(logging.ERROR)
entity = 'session' # session
api_id = 123456
api_hash = 'hash'
phone = '1234567'
chats = ['group1', 'group2', 'group3']
client = TelegramClient(entity, api_id, api_hash)
@client.on(events.NewMessage(chats=chats))
async def normal_handler(event):
print(event.message.message)
print(event.date)
print(event.from_id)
print(event.message.to_id)
#user = await client.get_input_entity(event.from_id)
user = await client.get_entity(event.from_id)
client.start()
client.run_until_disconnected()
我该如何解决?
还有一个问题,如何检索有关组的信息? 我知道它是 event.message.to_id 的ID,但无法获取其名称。
The docs for the library对于初学者来说似乎不太友好。 =(
谢谢
答案 0 :(得分:0)
如果当前客户端从未“看到”,电报不允许通过整数ID获取用户个人资料。
Telethon文档(https://telethon.readthedocs.io/en/latest/extra/basic/entities.html)建议使用以下选项使联系人“可见”:
client.get_dialogs()
client.get_participants('groupname')
client.get_messages('groupname', 100)
选择适用于您的情况的一种。其中之一将使联系人“可见”,并且可以使用client.get_entity(event.from_id)