我正在尝试使用 Meteor 构建 Facebook Messenger 机器人。设置包括查找验证 token 并使用验证 GET 请求中发送的质询进行响应。在 Facebook 的(非 Meteor)示例应用程序中,使用以下代码:
app.get('/webhook', function(req, res) {
if (req.query['hub.mode'] === 'subscribe' &&
req.query['hub.verify_token'] === VALIDATION_TOKEN) {
console.log("Validating webhook");
res.status(200).send(req.query['hub.challenge']);
} else {
console.error("Failed validation. Make sure the validation tokens match.");
res.sendStatus(403);
}
});
当我尝试使用以下 (Meteor) 代码实现相同的功能时,我收到以下错误。
var bodyParser = Meteor.npmRequire( 'body-parser');
// Add two middleware calls. The first attempting to parse the request body as
// JSON data and the second as URL encoded data.
Picker.middleware( bodyParser.json() );
Picker.middleware( bodyParser.urlencoded( { extended: false } ) );
// ------------------------------------------------------------
// HANDLE THE INITIAL HANDSHAKE WITH FACEBOOK VIA A GET REQUEST
// ------------------------------------------------------------
var getRoutes = Picker.filter(function(req, res) {
// you can write any logic you want.
// but this callback does not run inside a fiber
// at the end, you must return either true or false
return req.method == "GET";
});
getRoutes.route('/webhook', function(params, req, res, next) {
if (params.query['hub.verify_token'] === '78750') {
console.log(params.query['hub.verify_token']);
// res.end();
res.end(params.query['hub.challenge']);
}
}); // end getRoutes
错误:
The URL couldn't be validated. Response does not match challenge, expected value = '1127215706', received='<!DOCTYPE html> <htm...
也许这个问题是由于它在客户端而不是服务器上运行?如果是这样,我应该将该代码放在哪里才能在服务器上运行?
此外,我的浏览器控制台出现以下错误12次:
Mixed Content: The page at 'https://pfbe.meteorapp.com/' was loaded over HTTPS, but requested an insecure font 'http://themes.googleusercontent.com/static/fonts/inconsolata/v5/BjAYBlHtW3CJxDcjzrnZCIbN6UDyHWBl620a-IRfuBk.woff'. This request has been blocked; the content must be served over HTTPS.
我该如何解决这个问题?
最佳答案
使用Restivus -您需要在正文中回应challenge并将其作为parsedInt返回
关于javascript - Meteor Facebook Messenger Bot webhook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38237382/