2017-02-13 4 views
1

내 노드 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)

빈 객체와의 항상 다른 부분을 반환하는 경우 - 다른 실행하고 콘솔 인쇄 : ".. 실패 유효성 검증이 일치하는 토큰 확인"

+0

않습니다으로 webhook 경로 반환 아무것도 심지어 컬 명령을 사용하려고 할 때? 또한 페이스 북의 메신저는 https로 콜백 URL 만 허용하지 않습니까? 코드에 https 코드가 없으므로이 질문을드립니다. 웹 후크 설정을 다시 확인하십시오. – SLee

+0

그것은 {success : true}를 반환합니다. 예, 저는 영웅을 사용하고 있습니다. –

+0

나는 실제로 페이스 북에서 주어진 예제 코드를 복사했다. –

답변

1

webhook을 설정할 때 콜백 URL로 "https://your_heroku_url/webhook"을 사용했지만 코드에서 "https://your_heroku_url/"을 호출 할 가능성이 있습니다. 다음 코드를 사용해보십시오 :

app.get('/webhook', function (req, res) { 
    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);   
    } 
}); 

참조 : https://developers.facebook.com/docs/messenger-platform/guides/quick-start

+0

아니요 설치를 올바르게했습니다. 게시 요청시 사용자의 메시지가 표시됩니다. –

+0

흠 .. webhook이 확인되지 않은 경우 게시 요청을받을 수 있습니까? – SLee