如何将一个node.js webhook连接到我的Facebook应用程序的messenger API?
我无法将我的node.js服务器作为一个messenger Web钩子链接到我的Facebook应用程序。 如果我尝试在'/webhook'
调用中validation请求,Facebook在尝试validation并保存Web钩子时给我一个未find错误的页面。 如果将代码放在'/'
调用中,即调用app.get('/',...)
,则在保存Web钩子时出现内部服务器错误。 我的应用程序托pipe在Heroku上。 在检查英雄日志时,我看到这个错误。
参考错误:
集线器没有定义
它指向这一行:
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
replace为您尝试访问不存在的对象的req.query
。