我尝试访问一个组,并希望阅读所有的消息。问题不在于代码,问题在于我得到了错误:值错误:找不到任何对应于“鲸鱼警报”的实体。但奇怪的是,如果我用其他会话名称尝试它,有时它会起作用。有人知道我如何100%获得正确的组吗?我有什么其他选项作为输入实体或会话名称?也许这可能是原因。
下面是我的代码:
with TelegramClient('Me', api_id, api_hash) as client:
for message in client.iter_messages('Whale Alert'):
#Do Sth
4条答案
按热度按时间fhg3lkii1#
完整的错误会直接告诉你要研究什么,它指向文档:https://docs.telethon.dev/en/latest/concepts/entities.html#summary
这个错误经常发生在只使用一个实体(用户,频道,聊天等)的ID时。只有当你的会话已经“看到”并缓存了这个实体时,这个错误才会发生。这就是为什么不同的会话可能会给予你不同的结果。
ckocjqey2#
当使用字符串telethon检查它是否是一个用户名,如果不是,它将尝试从缓存中获取实体。在另一个会话中,您将名称保存在缓存中。
可能的解决办法:
camsedfj3#
我通过打印所有聊天记录并找到我感兴趣的聊天记录的id来解决这个错误。手动获得id后,get_entity(id)对我起作用了。
vtwuwzda4#
首先,如果你能更好地理解的话,我试着阅读这里的文档,而不是使用聊天名称,只尝试t.me/chatname(频道链接),这对我很有效