我的问题有点像this。
您的Webhooks订阅回调网址https:// {domain} / bot至少2天内未接受更新。请验证您的回调服务器是否正常运行。请访问我们的参考文档,了解如何更新回调网址。
如果您的回调网址在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()
或res.status(200).end()
,但它也没有帮助。
提前谢谢!
答案 0 :(得分:0)
过去两周我一直在处理这个问题,这让我发疯,因为我知道我们的服务器上的一切都运行良好,而且webhook响应总是200 OK ......
所以我找到了这个帖子:https://developers.facebook.com/bugs/594288957423128/ ......显然很多人都遇到了这个问题。原来这是Messenger平台方面的一个错误。
以下是facebook团队写的一篇文章:
尤欧和其他人,
我们已经解决了这个问题,它将在下周二推出。请继续关注。
Shireesh 5小时前·(2017年1月4日)
所以手指交叉......问题应该尽快解决! ;)