2

私のノード js ボットは、Facebook メッセンジャー ボット プラットフォームの検証トークンを検証できません。指定された公式ドキュメントに従って、開発者コンソールで Webhook のセットアップを正しく行いました。以前にチャットボットを作成したことがあるので、アプリ コンソールの設定が正しく構成されていることを確信できます。次のコードを確認して、何か問題があるかどうか教えてください。

'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) は空のオブジェクトを返し、常に if-else の else 部分が実行され、コンソールに「検証に失敗しました。検証トークンが一致することを確認してください」と出力されます。

4

1 に答える 1