2016-06-21 10 views
1

Cloud上でコードをパースしてください。x-hub-signatureをFacebook webhookから受信しました。FacebookのX-Hub-Signatureを確認してください

secretは、Facebookアプリの正しい秘密鍵です。

var 
hmac, 
expectedSignature, 
payload = JSON.stringify(req.body), 
secret = 'xyzxyzxyz'; 

hmac = crypto.createHmac('sha1', secret); 
hmac.update(payload, 'utf-8'); 
expectedSignature = 'sha1=' + hmac.digest('hex'); 
console.log(expectedSignature); 
console.log(req.headers['x-hub-signature']); 

しかし、署名は決して一致しません。 どうしたのですか?

+0

JSON.stringifyを使用した後、実際に 'payload'の内容は何ですか? – CBroe

+0

本文で受信したJSONの文字列表現。{"entry":[{"changes":[....... – GPack

答えて

1

あなたがミドルウェアを持つオブジェクトに体を解析している場合は、すでに生の解析モジュールを使用している場合ではないJSON.stringify req.body行うと、Node.js - get raw request body using Express

をチェックアウトし、それが動作するはずです:

payload = req.body, 
0

äöåのような特殊文字を使ってFacebookのメッセンジャーのリクエストを確認したため、誰かがこの投稿にも訪れた場合、このsolutionは魅力的に機能します。

関連する問題