問題タブ [facebook-webhooks]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
facebook - Facebook からの X-Hub-Signature の検証
私は Play フレームワーク (この場合は 2.5 と Scala) の初心者ですが、Facebook メッセンジャー用のボットを作成して学習しようとしています。ただし、メッセージの署名を検証しようとして行き詰まりました。
Facebook のドキュメントに従って、Webhook を作成しました。を使用して POST リクエストを処理しますgetRawMessages
(以下のコードを参照)。次に、この関数を使用して、要求が Facebook によって署名されていることを確認しようとしverifyPayload
ます。ただし、計算されたハッシュと実際のハッシュを一致させることができないようです。
私はこの質問を見てリードを取りました: How to verify Instagram real-time API x-hub-signature in Java? これは、私が望むことをほとんど行っているようですが、Instagramの同等のものです。しかし、私はまだそれを正しく理解できないようです。
Facebook Webhook ドキュメントには次のように記載されています。
HTTP 要求には、アプリ シークレットをキーとして使用し、sha1= というプレフィックスを付けて、要求ペイロードの SHA1 署名を含む X-Hub-Signature ヘッダーが含まれます。コールバック エンドポイントは、この署名を検証して、ペイロードの整合性と発信元を検証できます。
計算は、ペイロードのエスケープされた Unicode バージョンで行われ、小文字の 16 進数で行われることに注意してください。デコードされたバイトに対して計算するだけでは、別の署名になってしまいます。たとえば、文字列 äöå は \u00e4\u00f6\u00e5 にエスケープする必要があります。
私が見逃しているのは、ペイロードを適切にユニコードにエスケープすることだと思いますが、それを行う方法が見つからないようです。また、参照されている質問の回答も、何もせずにバイト配列を取得するように見えました ( jsonRawBytes = jsonRaw.asBytes();
)。
続行する方法についての助けをいただければ幸いです。
facebook - Facebook Webhook を設定するには?
開発中のアプリケーション用にFacebook Webhookを構成したいと考えています。
私がこれまでに行ったことは次のとおりです。
- FBアプリを作る
- アプリの設定に移動し、新しい Webhook を作成します。
- 有効なコールバック URL を追加してください
- 特定のフィールドを選択する
- 設定を保存しました
ここで、ページ サブスクリプションをクエリすると、次のような応答が返されます。
これは有効なようです。
次に何をすべきですか?特定のページのフィードからリスニングを開始するには?
facebook-messenger - Facebook Messenger Webhook 奇妙なサブスクリプション エラー
アプリを Facebook に再登録しようとしています (graph-api post/me/subscribed-apps を使用)。サブスクリプションは初めて機能し、受信しましたが{success: true}
、現在、次のエラーが表示されています:
トークンを交換しようとしましたが、まだこれを取得しています。誰もこれに遭遇したことがありますか?参照を探してみましたが、運がありませんでした。
前もって感謝します!
facebook - Facebook - Real-Time API を使用して未公開および非表示の投稿を取得する
promotable_posts
Facebook ページのエンドポイントを購読して、未公開および非表示の投稿 (「ダーク ポスト」) の更新を取得しようとしています。Facebook によると、そのエンドポイントをサブスクライブできるはずです: https://developers.facebook.com/docs/pages/realtime#data
しかし、そのエンドポイントはhttps://developers.facebook.com/apps/[APP_ID]/webhooks/にリストされておらず、API を介してエンドポイントのサブスクリプションを追加することもできません。のようなエンドポイントで機能しますfeed
。
そのエンドポイントをサブスクライブするにはどうすればよいですか? また、非表示の投稿を取得するにはどうすればよいですか? 通常https://graph.facebook.com/[PAGE_ID]/promotable_posts?include_hidden=true&access_token=...
、私はポーリングしているときにそれらの投稿を取得するために使用しますが、エンドポイントを購読するときに非表示の投稿を含めるように Facebook に指示することはできません。
facebook - Facebook Webhook の「メッセージ」サブスクリプション フィールドが存在しませんか?
Facebook ページに送信されたプライベート メッセージを購読しようとしています。
Webhook のセットアップ時にメッセージ フィールドを選択することで、このコールバックをサブスクライブできます。
https://developers.facebook.com/docs/messenger-platform/webhook-reference/message?locale=en_US
フィールド「メッセージ」はありません。彼らは「メッセージ」を意味しますか?このページのスクリーンショットにも「メッセージ」フィールドは表示されません: https://developers.facebook.com/docs/messenger-platform/webhook-reference?locale=en_US
「メッセージ」を購読すると、誰かがプライベート メッセージを書いたときにイベントを受け取りません。「会話」を購読すると、更新を受け取りますが、「thread_id」のみが含まれ、プライベート メッセージの内容は含まれません。
アップデートでメッセージの内容を受け取るにはどうすればよいですか?
facebook - Facebook - メッセージ ID で会話スレッド ID を取得しますか?
Facebook Realtime API (webhooks) から「メッセージ受信コールバック」イベントを受け取ったら、会話で以前のメッセージを取得したいと考えています。そのためには、会話スレッドの ID が必要です。
https://developers.facebook.com/docs/messenger-platform/webhook-reference/message?locale=en_US
このイベントには、会話スレッドの ID (t_id) に関する情報は含まれていません。メッセージ ID (mid) のみが含まれます。
https://developers.facebook.com/docs/graph-api/reference/v2.8/conversation
会話スレッド ID を取得する方法はありますか?