在 Telethon 中 ID 和 Peer ID

参考 Telethon 官方文档 https://docs.telethon.dev/en/stable/concepts/chats-vs-channels.html


ID是像这样的

4011678806

2079829990

6702958858

你如果在桌面端 使用 Forkgram, 那么你可以直接在界面上看到这些ID

 
而 Peer ID 是像这样的:

460693903

-4016131921

-1002079829990

只有数字的意思是, 这是一个用户user, 机器人bot是用户的一种.

如果数字前面有一个减号, 这是一个私有群组private group

如果数字前面有一个减100, 这是一个频道channel, 或者是一个公开群组public group. 


在你使用网页web版的telegram时, 你可以在浏览器的地址栏发现这样的ID


在使用 Telethon 框架中, chat_id 是 Peer ID. 如,

@client.on(events.MessageEdited)
@client.on(events.NewMessage())
async def on_greeting(event):    
  real_id, peer_type = resolve_id(event.chat_id) # 转换为官方真实id
  print(f"event.chat_id {event.chat_id}")
  print(f"real_id {real_id}")

命令行打印的是类似这样:

event.chat_id -1001730207212
real_id 1730207212
event.chat_id -4016131921
real_id 4016131921

========
update

在使用 Telethon 框架中, event.chat_id 和 event.message.chat.id 是不同的。用日志打印出来是类似下面这样:

event.chat_id: -1001742766507
event.message.chat.id: 1742766507
event.chat_id: -4085528054
event.message.chat.id: 4085528054

评论

The Hot3 in Last 30 Days