我正在开发一个我希望用户在回复上一条消息时调用的Bot。因此,您将使用bot命令回复消息。
例如
用户1:Hello World
用户2 :(回复Hello World)/命令测试消息
现在我只能抓取命令中直接发送的文本(“测试消息”),而不是第一条消息(“Hello World”)。根据他们的documentation,我应该能够从reply_to_message
获得它。但是,我在webhook的日志中看到的就是这个。
event: {
body: {
update_id: 5632431,
message: {
message_id: 43,
from: {
id: < my_user_id > ,
first_name: 'User 2',
username: 'user_2_username',
language_code: 'en'
},
chat: {
id: < chat_id > ,
title: < chat_name > ,
type: 'group',
all_members_are_administrators: true
},
date: 1498342725,
text: '/command test message',
entities: [{
type: 'bot_command',
offset: 0,
length: 5
}]
}
}
}
我做错了吗?任何人都有获得回复消息的经验? 任何帮助将不胜感激。
答案 0 :(得分:1)
转到@BotFather,然后关闭privacy mode
/setprivacy
- 设置机器人在添加到群组时会收到哪些消息。禁用隐私模式后,机器人将收到所有消息。
设置完毕后,您可能需要将机器人重新添加到组中。
答案 1 :(得分:0)
当漫游器位于privacy mode中时,它将仅接收(从文档复制):
- 以斜杠“ /”开头的邮件(请参见上面的命令)
- 回复机器人自己的消息
- 服务消息(添加或删除群组的人等)
- 来自其成员渠道的消息
这不包括回复的邮件。
默认情况下,所有机器人均会启用隐私模式,但以管理员身份添加到组中的机器人除外(机器人管理员始终会收到所有消息)。
因此,使邮件得到回复的唯一方法是按照肖恩(Sean)的建议禁用隐私模式。
答案 2 :(得分:0)
最近我正在处理相同的问题,有两件事对我有用:
1-禁用隐私模式,并且 2-使用@botname进行提及(不使用/ botname),这样我就可以获取reply_to_message字段。
答案 3 :(得分:-1)
分享我的代码,试试这个会成功
$ chatID = $ this-&gt; getChatID();
$ sendto = API_URL。 “sendmessage?chat_id =”。 $ chatID。 “&amp; text =”。 urlencode($ msg)。 “&amp; reply_to_message_id =”。 $ MESSAGEID; 的file_get_contents($ SENDTO);