当我从telegram bot获得更新并将用户消息写入bot时,我希望看到一些带有用户id的bot的id,然而,我看到了这样的更新:
Update{update_id=515450315,
message=Message{message_id=117,
from=User{id=1234567890, first_name='Name', last_name='Surname', username='null'},
date=1470510167,
chat=Chat{id=1234567890, type=Private, first_name='Name', last_name='Surname', username='null', title='null'},
...
正如文档所说,User
是消息的发送者(用户或机器人(。但在这种情况下,用户id是实际的用户id(而不是机器人id(,出于某种原因,聊天id等于用户id。那么,有人知道如何在更新对象中获取机器人id吗?
这是一个JSON
对象,当用户向机器人发送消息时,机器人会接收电报
这完全正常。你问为什么?原因有二:
1-当
USER
向机器人发送东西时,首先Telegram
服务器会抓取并将其重新发送到自己服务器上的CCD_ 5应用程序。所以这个JSON
对象逻辑上包含发件人(用户(id。(为什么?(是user_id
而不是bot_id
,因为bot
接收消息并且应该知道是谁发送的这个号码(user_id(告诉bot
关于发送者的信息。2-为什么
chat_id
和user_id
(发送方(相等?因为当用户在与机器人的私人信息中,他/她在私人聊天中发送给机器人,因此这两个数字相等,但当用户在一个组中发送内容时如果您的机器人也是其成员,则有两个不同的数字:这里表示group_id
的chat_id
和user_id
(sender_id(告诉发送消息的机器人。
我们可以使用这两个数字的相等性检查来找出是用户在与机器人的私人聊天中还是在群中发送。
我不知道从Telegram
发送到Bot
的任何JSON对象都包含关于bot_id
的任何字段。除了一些特殊的方法,如CCD_ 19方法。(它返回有关您的机器人的基本信息(