0
私はMeteorでFacebook Messengerボットを作ろうとしています。セットアップには、検証トークンを検索し、検証GET要求で送信されたチャレンジに応答することが含まれます。 Facebookの(非流星)サンプルアプリケーションでは、次のコードが使用されます。Meteor Facebook Messenger Bot webhook
app.get('/webhook', function(req, res) {
if (req.query['hub.mode'] === 'subscribe' &&
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);
}
});
私は、次の(流星)コードを使用して同じ機能を実現しようと、私は以下のエラーが表示されます。
var bodyParser = Meteor.npmRequire('body-parser');
// Add two middleware calls. The first attempting to parse the request body as
// JSON data and the second as URL encoded data.
Picker.middleware(bodyParser.json());
Picker.middleware(bodyParser.urlencoded({ extended: false }));
// ------------------------------------------------------------
// HANDLE THE INITIAL HANDSHAKE WITH FACEBOOK VIA A GET REQUEST
// ------------------------------------------------------------
var getRoutes = Picker.filter(function(req, res) {
// you can write any logic you want.
// but this callback does not run inside a fiber
// at the end, you must return either true or false
return req.method == "GET";
});
getRoutes.route('/webhook', function(params, req, res, next) {
if (params.query['hub.verify_token'] === '78750') {
console.log(params.query['hub.verify_token']);
// res.end();
res.end(params.query['hub.challenge']);
}
}); // end getRoutes
エラー:
The URL couldn't be validated. Response does not match challenge, expected value = '1127215706', received='<!DOCTYPE html> <htm...
おそらく、この問題は、それがクライアントではなくサーバー上で実行されることに起因するのですか?もしそうなら、私はこのコードをサーバ上で実行するためにどこに置くべきですか?また
、私のブラウザコンソールは12回以下のエラーがあります。
Mixed Content: The page at 'https://pfbe.meteorapp.com/' was loaded over HTTPS, but requested an insecure font 'http://themes.googleusercontent.com/static/fonts/inconsolata/v5/BjAYBlHtW3CJxDcjzrnZCIbN6UDyHWBl620a-IRfuBk.woff'. This request has been blocked; the content must be served over HTTPS.
私はこの問題を解決するために何ができますか?
はあなたが_とはどういう意味ですかparsedIntとしてそれを返す必要がありますか? Facebookは要求を送信します。したがって、ここではクライアント、_server_は送信先です。 // 'received = '<!DOCTYPE html> ...'は非常に明白です。エンドポイントは完全なHTML文書を返します(デフォルトのテンプレートかエラー文書かどうかはそのスニペットからは伝えられません)。それが想定されているようにチャレンジする価値がある。 – CBroe