Facebook Messenger API"请求正文未定义"

dha*_*val 3 facebook

按照标准文档执行所有步骤后req.body,我的webhook中未定义:

app.post('/webhook/', function(req, res) {  
    console.log("message received " + req.body);
    if(!req.body){
        console.log("no request body found");
        res.sendStatus(200);
        return;
    }

    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;
        console.log("sender " + event.sender + ", message " + event.message.text);
        if (event.message && event.message.text) {
            text = event.message.text;
            // Handle a text message from this sender
            sendTextMessage(sender, "Text received, echo: "+ text.substring(0, 200));
        }
    }

    res.sendStatus(200);
});
Run Code Online (Sandbox Code Playgroud)

编辑

在我测试之前,我是否需要批准机器人?我的Facebook页面也是直播

小智 13

最新版本的Express(4.x)已从核心框架中分离出中间件.如果您需要身体解析器,则需要单独安装它

npm install body-parser --save
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中执行此操作

var bodyParser = require('body-parser')

var app = express()

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())
Run Code Online (Sandbox Code Playgroud)