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

当试图创build一个Facebook机器人时,我不停地接到我的webhook的双重请求。 我不知道为什么或如何阻止这一点。 我的代码似乎标准。

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

这是一个已知的问题,还是有一个基于节点的方式来减轻这一点?

我已经看到我的机器人多次交付有两个原因:

  • FB似乎有一个15秒的webhook请求超时。 也就是说,如果您的webhook在15秒内没有返回200 - OK ,则FB将再次尝试请求。
  • 就像@iownthegame写的,如果你注册了message_deliveries事件,FB会发送你送货单。

处理重复交付的一种方法是跟踪您的机器人看到的最后一个seq值。 显然,如果你负载平衡Webhooks请求跨服务器池(例如在Heroku),你将不得不分享你所有的实例最后看到的seq值。

你还注册了webhook的message_deliveries事件吗? 如果是的话,它会发送你的消息交付确认。