Node.js 来自Facebook Messenger/Bot API的重复发帖请求

Node.js 来自Facebook Messenger/Bot API的重复发帖请求,node.js,facebook,bots,Node.js,Facebook,Bots,当我试图创建一个Facebook机器人时,我的webhook上不断收到双重请求。我不知道为什么或者如何阻止这一切。我的代码似乎很标准 我正在使用Node.js中的请求模块发送响应 这是一个已知的问题还是有基于节点的方法来缓解这一问题?您是否也为您的webhook注册了消息传递事件?如果是,它将向您发送消息传递以供确认。您是否也为您的webhook注册了消息传递事件?如果是,它将向您发送消息传递以供确认。我在我的机器人上看到多次传递,原因有两个: FB似乎对webhook请求有15秒的超时。也就

当我试图创建一个Facebook机器人时,我的webhook上不断收到双重请求。我不知道为什么或者如何阻止这一切。我的代码似乎很标准

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


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

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

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

我在我的机器人上看到多次传递,原因有两个:

  • FB似乎对webhook请求有15秒的超时。也就是说,如果您的webhook在15秒内没有返回
    200-OK
    ,FB将重试请求第二次
  • 就像@iownthegame所写的那样,如果你注册了
    消息交付
    事件,FB将向你发送交付收据

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

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

  • FB似乎对webhook请求有15秒的超时。也就是说,如果您的webhook在15秒内没有返回
    200-OK
    ,FB将重试请求第二次
  • 就像@iownthegame所写的那样,如果你注册了
    消息交付
    事件,FB将向你发送交付收据

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

请提供代码的最小示例。请提供代码的最小示例。