如何知道用户是否阻止了messenger bot

时间:2017-07-19 19:38:17

标签: facebook-graph-api bots facebook-messenger-bot

我想知道用户是否阻止聊天机器人。通过文档我没有找到方法,所以我不得不创建一个解决方案。 我向用户发送消息并创建发送标志;然后我使用睡眠功能10秒。每次用户收到消息时,我的代码都会将标志从发送更改为发送。 10秒后,如果标志仍在发送意味着接收方没有收到消息,那么我推断聊天机器人被阻止了。 这个工作存在一些缺陷,如果消息需要超过10秒才能到达,我不知道为什么如果我使用休眠功能> 15秒,我进入循环,并且Fb API开始发送我的要求。

有人有更好的解决方案吗?

感谢您的帮助! (:

2 个答案:

答案 0 :(得分:1)

使用代码“10”子代码“2018108”或代码“200”子代码“1545041”检查错误。这些子代码主要定义用户已阻止您的机器人/信使对话。

答案 1 :(得分:0)

我今天使用最新的iOS Messenger应用进行了测试,结果发现,在以下每种情况下

  • 用户关闭邮件
  • 用户点击了“出了点问题”->报告->其他/垃圾邮件/不当内容(=这可能就是“阻止”的意思)

Facebook Messenger API返回

{"error":{"message":"(#551) This person isn't available right now.","type":"OAuthException","code":551,"error_subcode":1545041,"fbtrace_id":"XXXXX"}}

因此,您的问题的答案是检查错误代码551,子代码1545041。请注意,您将找回那些与那些点击“关闭邮件”的用户混在一起的“被阻止”用户。

顺便说一句,您可以通过转到关联的Facebook页面并点击“洞察”的顶行来查看阻止Messsenger对话的用户百分比。

希望这对其他人有帮助,我花了我几个小时的时间来学习:)