试图从body-parser和Node.js中猜测代码

时间:2016-04-26 04:48:36

标签: javascript node.js express

所以我刚刚开始使用Node.js&快递,但我正在学习本教程https://github.com/jw84/messenger-bot-tutorial,我理解其中大部分内容,但是,请从以下代码中获取:

app.post('/webhook/', function (req, res) {
messaging_events = req.body.entry[0].messaging
for (i = 0; i < messaging_events.length; i++) {
    event = req.body.entry[0].messaging[i]
    sender = event.sender.id
    if (event.message && event.message.text) {
        text = event.message.text
        sendTextMessage(sender, "Text received, echo: " + text.substring(0, 200))
    }
}
res.sendStatus(200)

我不明白“入境”和“短信”是做什么的,或者他们来自req.body.entry[0].messaging

1 个答案:

答案 0 :(得分:0)

entrymessaging来自POST请求中的JSON。在教程的第12行(https://github.com/jw84/messenger-bot-tutorial/blob/master/index.js#L12),您可以看到作者解析传入的请求正文以获取JSON。该JSON被添加到传入请求的body属性中。简而言之,这是他的榜样所特有的。如果传入的请求如下所示:

{ data: ["messaging": "hi"], ["messaging": "bye"] }

然后entry需要更改为data

此外,您可以看到这是Facebook的文档中信使规范的一部分:https://developers.facebook.com/docs/messenger-platform/quickstart#receive_messages