例如,如果用户发送机器人/text @USER
,我如何获得@ USER的ID并发送消息?
问题与this不同,因为该问题的答案要求所述用户(@USER)已经告知机器人/所有者已经知道用户的身份。
答案 0 :(得分:1)
有三个条件:
1 -
@user
之前未订阅您的机器人(之前没有与您的机器人发起聊天,或者在与机器人聊天后它会阻止机器人:在这种情况下,您永远不能发送任何类型的消息给@user
。2 -
@user
不存在或不正确。如您所知,电报用户订阅了电话和名字(至少),并且他/她不能拥有任何@user
ID:在这种情况下,没有用户名要发送。3 -
@user
已存在且已经是您的机器人订阅者。在这种情况下,您应该保存所有订阅者chat_id
及其相关user_name
,因为他们会在数据库中向您的机器人发送一些消息,因为这些数据是您从用户收到的每条消息的一部分。因此,要发送到@user
,您应该从数据库中找到相关的chat_id
。(非Telegram Bot API
方法使用@username
,但他们使用chat_id
)
当用户发送/1
命令时,这是来自Telegram的示例JSON响应,因为您看到电报总是附加发件人chat_id
,firs_name
,last_name
和{{1} (如果存在)机器人收到的每条消息:
<强>已更新强>:
由于用户可能会在此期间更改
username
,因此最好 每封邮件都会更新您的@username
&lt; - &gt;chat_id
数据库 接收。