我只能通过用户名获取实体后才能通过ID获取实体。是虫子吗?来自外壳的视频

时间:2019-05-20 23:07:04

标签: python-3.x telethon

仅通过用户名获取实体后,我才能通过ID获取实体。是虫子吗?来自外壳的视频

我正在使用Mac和python 3

我正在尝试通过ID获取实体

entity = client.get_entity(1151511560)

但有例外:

ValueError: Could not find the input entity for <telethon.tl.types.PeerUser object at 0x1172312e8>. Please read https://telethon.readthedocs.io/en/latest/extra/basic/entities.html to find out more details.

然后我成功通过用户名“ ekat01”获取了一个实体

此后,我通过ID成功获得了一个实体。

为什么我不能仅通过id获得实体?我认为这是一个错误,不是吗?

带有证明的视频,其链接为:https://youtu.be/mnDNZZir5PY

1 个答案:

答案 0 :(得分:0)

Github ---------------------------------------------- ---

来自 juanvelascogomez

如果我没记错的话,请参见文档“用户,聊天和频道的重要部分”:https://telethon.readthedocs.io/en/stable/extra/basic/entities.html

一旦库“看到”了实体,就可以使用其整数ID。您无法使用图书馆未看到的ID中的实体。您必须使磁带库至少看到它们一次并正确断开连接。您知道实体在哪里,并且必须告诉图书馆。它不会为您猜测。

来自 Lonami

在干净的会话中,

with client:
    try:
        client.get_entity(1151511560)
    except ValueError:
        print('Error as expected')

    client.get_entity("ekat01")
    client.get_entity(1151511560)
    print('Works as expected')
prints:

预期错误 按预期工作 再进行一次

with client:
    client.get_entity(1151511560)
    print('Works as expected')
prints:

按预期工作