我已经使用laravel实现了一个带有php的facebook聊天机器人的webhook,并且一切正常,当我向我的机器人发送消息时,我收到了一个具有预期数据结构的帖子请求,并且我设法运行良好。然后我尝试使用nodejs进行webhook实现,但是当我向我的机器人发送消息时,我收到的帖子请求不是预期的那个。这有点奇怪,因为我能够使用令牌验证webhook。我使用了与用于php实现的相同的facebook应用程序和页面,所以我不认为问题在那里。这是节点中的代码:http://pastebin.com/0GQcXdV2
我希望请求结构为:http://pastebin.com/GFU89LjA
但请改为:http://pastebin.com/51S7DrkG
对不起,如果这个问题看起来很愚蠢,而且我错过了一些明显但却无法弄清楚的东西。我对节点js有点新意,所以也许这是一个新手的错误,但如果有人能告诉我我做错了什么,我将非常感激。提前致谢
答案 0 :(得分:1)
我设法通过导入npm body-parser来解决我的问题,并使我的快速应用程序使用它来返回JSON。根据npm文档,bodyParser对象提供了中间件工厂,这些工厂公开请求的主体,并以纯文本,json,raw或url编码形式体(https://www.npmjs.com/package/body-parser)将其分配给req.body
。为了解决我的问题,我刚刚添加了以下两行代码:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
可以找到有关正文解析器的更多信息here。