1 回答
TA贡献1827条经验 获得超7个赞
不应将“标记 ID”和实例的概念混合在一起。您可以使用:Peer
@client.on(events.NewMessage(chats=[PeerChannel(123456789)]))
async def my_event_handler(event):
print(event.raw_text)
艺术
@client.on(events.NewMessage(chats=[-100123456789]))
async def my_event_handler(event):
print(event.raw_text)
但不是两者兼而有之。
前缀告诉Telethon它是一个
频道
(megagroups,也称为supergroups,也是)。-100
Channel
前缀告诉Telethon这是一个
聊天
。-
前缀告诉Telethon它是一个
用户
。+
这遵循与 Telegram HTTP Bot API 相同的约定。
如果您不使用前缀,Telethon将在缓存中查找所有类型。如果它不在缓存中,它将尝试使用 .User
如果使用前缀,Telethon 将仅从缓存中获取该类型。如果它不在缓存中,它将尝试使用前缀所说的类型。
内部
-100123 == PeerChannel(123)
-123 == PeerChat(123)
123 == PeerUser(123)
event.chat_id、,都返回带前缀的 ID,因为它对库有帮助,对用户也很方便。event.user_idclient.get_peer_id
更新是来自Telegram的“原始”对象,这些是原始的实际值。
添加回答
举报