PHP Webサーバーで新しいFacebook Messengerボットプラットフォーム用のWebフックを設定しようとしていますが、このエラーが表示されます:
URLを検証できませんでした。応答がチャレンジと一致しません。期待値= '364011207'、受信済み= '
https://developers.facebook.com/docs/messenger-platform/quickstart
https://developers.facebook.com/docs/messenger-platform/webhook-reference#common_format
どんな助けも大歓迎です。
私は修正に出会いました。 jsの試みを破棄し、次のコードを使用して新しいphpファイルを作成しました。
<?php
$challenge = $_REQUEST['hub_challenge'];
$verify_token = $_REQUEST['hub_verify_token'];
if ($verify_token === 'my_token_code') {
echo $challenge;
}
このビデオの最初の10分間でこのコードを取得しました: https://www.facebook.com/marketingdevelopers/videos/883648801749520/
そのコードはnode.jsコードであり、HTMLの<script>
タグではなくサーバーで実行する必要があります。
Node.jsでメッセンジャーボットを設定する簡単な手順を次に示します。 https://github.com/voronianski/simon-le-bottle
基本的に、node.jsアプリケーションをサポートするホストがあることを確認し、そのように実行する必要があります。 HTML内では機能しません。
コールバックURLに「/ webhook」を追加して、この問題を解決しました...
これをNode.js
アプリケーションとして実行していて、質問で言及されている The Facebook Quickstart Guide から来ている場合、webhook URLを[your-server-root]/webhook
にポイントする必要があります。 チュートリアル のこの部分に注目してください。
// Adds support for GET requests to our webhook
app.get('/webhook', (req, res) => {
...
// Responds with the challenge token from the request
res.status(200).send(challenge);
});
@shane
webhook: function(req, res) {
if (req.query['hub.verify_token'] === 'tokentoken') {
res.send(req.query['hub.challenge']);
} else {
res.send('Error, wrong validation token');
}
}
正確に何をしているかに注意してください。しかし、これは私がやったことであり、働いています。
ドメイン名がなく、コールバックURLが https://werwrwetwtw.ngrok.io/webhook であるため、ngrokサーバーを使用してテストしました
お役に立てれば!
これが役立つかどうかはわかりませんが、FBが送信するクエリパラメータはドットではなくアンダースコア付きです:
追伸.
申し訳ありませんが、これはPHPに有効です