我收到了此消息
您的Webhooks订阅回调网址尚未接受 更新。
我们注意到您的Webhooks订阅了回调网址 https://trololo.herokuapp.com/bot尚未接受更新 至少16分钟。请确认您的回叫服务器是 功能,以便您可以继续接收更新。如果你需要 更新您的回调网址,请参阅 https://developers.facebook.com/docs/graph-api/reference/app/subscriptions#update
如果您的回调网址仍然无法接受8小时的更新 直接,我们将禁用您的订阅。要重新激活 订阅,使用相同的参数发出POST请求 将重新激活。
此代码在服务器上执行
app.post('/bot', function (req, res) {
console.log('post bot: ' + req);
var messaging_events = req.body.entry[0].messaging;
for (var i = 0; i < messaging_events.length; i++) {
var event = req.body.entry[0].messaging[i];
var sender = event.sender.id;
if (event.message && event.message.text) {
text = event.message.text;
console.log('text received: ' + text);
sendTextMessage(sender, "Text received, echo: "+ text.substring(0, 200));
}
}
res.sendStatus(200);
});
但它失败了因为req.body
未定义。 req params也没有json,因为它出现了这个错误:
TypeError:将循环结构转换为JSON
req只显示[object Object],我不知道对象内部是什么。 .toString也没有工作。
我完成了两次完整指南。我认为问题来自于facebook页面应连接到facebook应用程序的部分。我这样做curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<mytoken>"
请帮忙。非常感谢任何回复。
答案 0 :(得分:1)
我认为这是一个依赖性问题......也许你错过了json body解析器body-parser
如果您查看node-wit/examples/messenger.js
上有关计划示例的评论,您会看到需要安装一些代码:
在项目目录中,尝试:
npm install body-parser express request
看看:https://www.youtube.com/watch?v=zFO1cRr5-qY ......我认为他们确切地解决了这个问题以及你可能找到的其他问题。