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

时间:2016-05-22 08:17:46

标签: node.js facebook bots

在尝试创建Facebook僵尸程序时,我不断向我的webhook发出双重请求。我不知道为什么或如何阻止这种情况。我的代码似乎是标准的。

我使用Node.js中的请求模块发送回复。

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

2 个答案:

答案 0 :(得分:4)

我在机器人上看到多次交付有两个原因:

  • FB似乎在webhook请求上有15秒超时。也就是说,如果您的webhook在15秒内未返回200 - OK,则FB将重试第二次请求。
  • 像@iownthegame写道,如果您注册message_deliveries活动,FB会向您发送送货单。

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

答案 1 :(得分:1)

您是否也为webhook注册了 message_deliveries 事件?如果是,它将向您发送消息传递以进行确认。