Facebook graph api 如何知道用户是否阻止messenger bot

Facebook graph api 如何知道用户是否阻止messenger bot,facebook-graph-api,bots,facebook-messenger-bot,Facebook Graph Api,Bots,Facebook Messenger Bot,我想知道用户是否阻止聊天机器人。查看文档时,我没有找到一种方法,因此我不得不创建一个变通方法。 我向用户发送消息并创建发送标志;然后我使用睡眠功能10秒钟。每次用户收到消息时,我的代码都会将标志从“发送”更改为“发送”。10秒后,如果该标志仍处于发送状态,则表示接收者未收到消息,因此我推断聊天机器人已被阻止。 这项工作存在一些缺陷,比如如果消息到达时间超过10秒,我不知道为什么如果我使用sleep函数>15秒,我会进入一个循环,FBAPI开始向我发送请求 有人有更好的解决方案吗 我感谢你的帮助!

我想知道用户是否阻止聊天机器人。查看文档时,我没有找到一种方法,因此我不得不创建一个变通方法。 我向用户发送消息并创建发送标志;然后我使用睡眠功能10秒钟。每次用户收到消息时,我的代码都会将标志从“发送”更改为“发送”。10秒后,如果该标志仍处于发送状态,则表示接收者未收到消息,因此我推断聊天机器人已被阻止。 这项工作存在一些缺陷,比如如果消息到达时间超过10秒,我不知道为什么如果我使用sleep函数>15秒,我会进入一个循环,FBAPI开始向我发送请求

有人有更好的解决方案吗


我感谢你的帮助!(:

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

我今天使用最新的iOS信使应用程序进行了测试,我发现,对于以下每种情况

  • 用户关闭消息
  • 用户点击“出错”->报告->其他/垃圾邮件/不适当(=这可能是您所说的“阻止”的意思)
Facebook Messenger API返回

{“error”:{“message”:“(#551)此人现在不在。”,“type”:“OAutheException”,“code”:551,“error_subcode”:1545041,“fbtrace_id”:“XXXXX”}

因此,您的问题的答案是检查错误代码551,子代码1545041。请注意,您将返回“被阻止”的用户以及点击“关闭消息”的用户

顺便说一句,你可以通过访问相关的Facebook页面并点击顶部的“Insights”来查看阻止Messenger对话的用户百分比


希望这对其他人有所帮助,我花了几个小时的时间才了解到这一点:)

您是否检查了API响应中的权限或其他错误代码?您是对的,现在我正在从API捕获错误代码。谢谢从被阻止的用户捕获的错误代码是什么?