我的问题有点像这样。
您对回调 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()
但它也没有帮助。
先感谢您!