내 노드 js bot은 facebook messenger bot 플랫폼의 유효성 검사 토큰을 확인할 수 없습니다. 주어진 공식 문서에 따라 개발자 콘솔에서 webhook 설정을 올바르게 수행했습니다. 이전에 채팅 봇을 만들었으므로 앱 콘솔 설정을 올바르게 구성 했으므로 안심할 수 있습니다. 다음 코드를 확인하고 문제가 있는지 알려주십시오. fb 메신저 봇은 항상 webhooks를 확인하는 동안 빈 json을 반환합니다.
'use strict'
const express = require('express');
const bodyParser = require('body-parser');
const request = require('request');
const app = express();
app.set('port', (process.env.PORT || 5000));
// Process application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({extended: false}));
// Process application/json
app.use(bodyParser.json());
const VALIDATION_TOKEN = (process.env.MESSENGER_VALIDATION_TOKEN) ?
(process.env.MESSENGER_VALIDATION_TOKEN) :
'alex';
// Webhook route
app.get('/', function (req, res) {
console.log(req.query);
// console.log(req.query['hub.verify_token']);
if (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);
}
});
// Spin up the server
app.listen(app.get('port'), function() {
console.log('running on port', app.get('port'));
});
을 console.log (req.query)
빈 객체와의 항상 다른 부분을 반환하는 경우 - 다른 실행하고 콘솔 인쇄 : ".. 실패 유효성 검증이 일치하는 토큰 확인"
않습니다으로 webhook 경로 반환 아무것도 심지어 컬 명령을 사용하려고 할 때? 또한 페이스 북의 메신저는 https로 콜백 URL 만 허용하지 않습니까? 코드에 https 코드가 없으므로이 질문을드립니다. 웹 후크 설정을 다시 확인하십시오. – SLee
그것은 {success : true}를 반환합니다. 예, 저는 영웅을 사용하고 있습니다. –
나는 실제로 페이스 북에서 주어진 예제 코드를 복사했다. –