我如何 link node.js webhook 到我的 Facebook 应用程序的 Messenger API?

How do I link a node.js webhook to the messenger API of my Facebook app?

我无法 link 我的 node.js 服务器作为我的 Facebook 应用程序的 Messenger Web 挂钩。如果我尝试验证 '/webhook' 调用中的请求,Facebook 在尝试验证和保存 Web 挂钩时会给我一个页面未找到错误。如果我将代码放在 '/' 调用中,即 app.get('/',...) 调用中,我会在保存 Web 挂钩时收到内部服务器错误。我的应用程序托管在 Heroku 上。在检查英雄日志时,我看到了这个错误。

引用错误:

hub is not defined

它指向这一行:

res.send(hub.query['hub.challenge'])

我的代码是:

var express = require('express')
var bodyParser = require('body-parser')
var request = require('request')
//the imports

app = express()
app.set('port', (process.env.PORT || 5000))
app.use(bodyParser.urlencoded({extended: false}))

// Process application/json
app.use(bodyParser.json())
app.get('/',function(req,res){
    if (req.query['hub.verify_token'] === 'my_voice_is_my_password_verify_me') {
    res.send(hub.query['hub.challenge'])
    }
    res.send('wrong token,error')
})


app.get('/webhook',function(req,res){
    if (req.query['hub.verify_token'] === 'my_voice_is_my_password_verify_me') {
    res.send(hub.query['hub.challenge'])
    }
    res.send('wrong token,error')
})


app.listen(app.get('port'), function(req,res) {
    console.log('server running on port',app.get('port'))
})

hub.query 替换为 req.query 您正在尝试访问不存在的对象。