来自 Facebook Messenger/Bot API 的重复 POST 请求

CLr*_*rrr 1 facebook bots node.js

当我尝试创建 Facebook 机器人时,我的 webhook 不断收到双重请求。我不知道为什么或如何阻止它。我的代码看起来很标准。

我使用 Node.js 中的请求模块来发送响应。

这是一个已知问题还是有基于节点的方法来缓解这个问题?

liw*_*iwp 6

我看到我的机器人多次送货,原因有二:

  • FB 似乎对 webhook 请求有 15 秒的超时。也就是说,如果你的 webhook200 - OK在 15 秒内没有返回 a,FB 将重试第二次请求。
  • 正如@iownthegame 所写,如果您注册参加该message_deliveries活动,FB 会向您发送送货收据。

处理重复交付的一种方法是跟踪seq机器人看到的最后一个值。显然,如果您要跨服务器池(例如在 Heroku 上)对 Webhooks 请求进行负载平衡,则必须seq在所有实例之间共享最后看到的值。