2017-08-09 7 views
0

現在、Facebookのメッセンジャープラットフォーム用の最初のチャットボットを開発しています。私はここでクイックスタートサンプルから始めました: https://developers.facebook.com/docs/messenger-platform/guides/quick-startFacebook Chatbot Webhook - get-requestを実装するのはなぜですか?

すべてがうまくいき、ボットは私のバックエンドを呼び出し、私は応答することができます。すべての良い。

しかし、以下のGET-フックが呼び出されることはありません:

app.get('/hook/', (req, res) => { 
    console.log('GET REQUEST CALLED'); 
    if (req.query['hub.verify_token'] === FB_VERIFY_TOKEN) { 
     res.send(req.query['hub.challenge']); 
    } else { 
     res.send('Error, wrong validation token'); 
    } 
}); 

クイックスタートとフルガイドでは、私は、コードの平和を必要とするが、それらのどれも私に理由を教えていないことを、教えてください。.. 。

私の質問は:場合は、このウェブフックは

  • と呼ばれるべき?
  • ボットがこのフックなしで動作するのはなぜですか?
  • 何か私のバックエンドを確認するべきではありませんか?それがなぜ必要なのですか?

私は完全にここで何かを逃したと思う:/

編集:私は、プログラムのページにサブスクライブするとき はこののみ必要とされていますか? 現在、ダッシュボードを使用してページへの購読を追加しました。

答えて

1

ウェブフックURLを開発者パネルから設定したとき。 Facebookは自動的にそのエンドポイントにGET要求を送信し、検証トークンの検証を期待します。

このエンドポイントは、Facebook用の種類の検証エンドポイントです。 Facebookは間違ったエンドポイントにチャット情報を送信しないため、プライバシー侵害を引き起こす可能性があります。また、エンドポイントがFacebook入力データを処理する準備が整っていることを確認します。

+0

ahaなので、なぜ私のWebHookが機能しているのかは、WebHookをダッシュ​​ボードに追加している間にサンプルを取得していることです。この最初の呼び出しの後、facebookはそのエンドポイントをもう呼び出すことはありません。これが、機能を失うことなくエンドポイントを削除できる理由です。正しい? – Stefan

+1

実際、このエンドポイントの削除はお勧めしません。私は確信していません(デベロッパードキュメントを書いていない)が、Facebookがこのエンドポイントでもう一度チェックを行う可能性があります。 – mustafaturan

関連する問題