Facebook Messenger Bot如何获取用户消息反应的回调数据?
获取Facebook Messenger Bot消息反应的方法
当然支持获取用户对消息的反应啦!我来给你捋清楚怎么实现:
- 第一步,先检查Webhook配置:你需要在Facebook开发者后台的Webhook设置里,确保勾选了
messaging_reactions这个事件订阅权限——这是触发反应回调的核心前提,没勾选的话Facebook根本不会把反应事件推给你的回调URL。 - 当用户给Bot发送的消息添加/移除反应(比如点赞、爱心、笑哭这些)时,Facebook会向你的回调URL发送POST请求,请求体的结构大概是这样的:
{ "object": "page", "entry": [ { "id": "<你的页面ID>", "time": 1620000000000, "messaging": [ { "sender": {"id": "<用户ID>"}, "recipient": {"id": "<你的页面ID>"}, "timestamp": 1620000000000, "reaction": { "mid": "<用户反应对应的消息ID>", "reaction": "LOVE", // 反应类型,可选值有LIKE、LOVE、HAHA、WOW、SAD、ANGRY等 "action": "add" // 表示是添加反应,移除的话值为"remove" } } ] } ] }
- 最后,在你的回调处理逻辑里,增加对
reaction字段的判断:当收到的Webhook事件中messaging对象包含reaction字段时,就说明这是一个用户反应事件,你可以从中提取用户ID、目标消息ID、具体反应类型以及操作(添加/移除)等信息,按需处理即可。
另外要提醒你:只有Bot主动发送的消息,用户的反应才会触发这个回调;如果是用户自己发的消息或者非Bot发送的消息,对应的反应不会触发该事件哦。
内容的提问来源于stack exchange,提问作者user498529




