0

我的问题有点像这样

您对回调 URL https://{domain}/bot 的 Webhooks 订阅至少有 2 天没有接受更新。请验证您的回调服务器是否正常运行。请访问我们的参考文档以了解如何更新您的回调 URL。

如果您的回调 URL 在 12 小时后仍然失败,您的订阅将被禁用。要重新激活,只需使用相同的参数发出 POST 请求或访问应用仪表板中的 Webhooks 选项卡。

但是,我很确定我已经为每个请求返回了状态 200,这是我的代码的一部分:

router.post("/bot", (req, res) => {
    Promise.map(req.body["entry"], eachEntry => {
        return Promise.map(eachEntry["messaging"], eachMessage => {
           // some postback and quick_replies handling, send messages...
        });
    })
    .then(() => res.sendStatus(200))
    .catch(err => {
        console.error(err.stack);
        res.sendStatus(200);
    });
});

我只订阅了messages, messaging_postbacks,之类的事件message_deliveries。我认为即使有些事情我没有处理,这些请求最终也会获得状态 200。

但我不明白的是,每次我收到 webhook 失败警报时,我都没有在日志中看到错误或任何未作为状态 200 返回的内容。

我也尝试更改res.sendStatus(200)res.end()orres.status(200).end()但它也没有帮助。

先感谢您!

4

1 回答 1

0

过去两周我一直在处理这个问题,这让我发疯,因为我知道我们的服务器上一切正常,并且 webhook 响应总是 200 OK...

所以我找到了这个帖子:https ://developers.facebook.com/bugs/594288957423128/ ...显然很多人都遇到了这个问题。原来这是 Messenger Platform 方面的一个错误。

以下是 Facebook 团队的一位成员写道:

嗨尤金和其他人,

我们已经解决了这个问题,它将在下周二推送。敬请关注。

Shireesh 5 小时前·(2017 年 1 月 4 日)

所以手指交叉......问题应该很快解决!;)

于 2017-01-04T09:00:53.893 回答