发送到Telegram Bot的传入消息是否包含该机器人的任何id



当我从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_iduser_id(发送方(相等?因为当用户在与机器人的私人信息中,他/她在私人聊天中发送给机器人,因此这两个数字相等,但当用户在一个组中发送内容时如果您的机器人也是其成员,则有两个不同的数字:这里表示group_idchat_iduser_id(sender_id(告诉发送消息的机器人。

我们可以使用这两个数字的相等性检查来找出是用户在与机器人的私人聊天中还是在群中发送。

我不知道从Telegram发送到Bot的任何JSON对象都包含关于bot_id的任何字段。除了一些特殊的方法,如CCD_ 19方法。(它返回有关您的机器人的基本信息(

相关内容

最新更新