web-dev-qa-db-ja.com

Facebook webhookページ購読のコールバックURLとは何ですか?

Facebook Web-hook APIを使用して、リアルタイムのパブリックフィードをストリーミングしようとしています。ここでは、Webフックコンソールでページサブスクリプションを設定しようとしています。コールバックURLというフィールドがあります。このURLは何についてですか?

また、コールバックURLのセットアップに関するドキュメントを試してみました。しかし、私は理解できませんでした。

https://developers.facebook.com/docs/graph-api/webhooks#setup

コールバックURLをSSL localhostにすることはできませんか?ローカルホストURLを指定しようとすると、「指定されたURLを確認できません」というエラーメッセージが表示されます。

Facebookは、更新を配信するためにサーバーからそのURLにリクエストを送信します。したがって、当然、インターネット経由で一般にアクセス可能でなければなりませんが、ローカルホストアドレスは明らかにそうではありません。

Facebookは、変更のためにサブスクライブしたオブジェクトおよびフィールドのデータがある場合、そのURLにリクエストを送信します。そして、データ構造がどのように見えるかは、ドキュメントで説明されています。ページフィールドの場合、新しいコンテンツを直接返します。ユーザーフィールドについては、どのフィールドが変更されたかを通知するだけなので、そのデータに対してリクエストを行うことができます。

管理者アクセス権があるページのリアルタイム更新のみを取得できます。また、Public Feed APIは非推奨ではありません。ただし、そのアクセスは少数のFacebookパートナーに限定されています。申請することはできません。この種のデータがどうしても必要な場合は、これらのパートナーのいずれかに連絡して、ソリューションを開発してもらう必要があります。

4
CBroe

次を使用して、リクエストをローカルホストに転送できます。

  1. https://ngrok.com/download からngrokをダウンロードしてインストールします
  2. ./ngrok http 8445
  3. Verify_tokenおよびhttps://<your_ngrok_io>/webhookをコールバックURLとして使用して、Webhookにページをサブスクライブします。
  4. メッセンジャーでボットと話してください!
23
Phil Hudson

Webフックを作成してfbサーバーからfbリクエストを取得する必要があり、webhookはパブリックIPアドレスで実行する必要があります。このパブリックURLは、コールバックURLボックスに入力するものです。そのため、fbサーバーは実行中のwebhookのURL以外のURLを介してユーザーを更新できます。 Webhookを認識するfbのパブリックURLアドレスを取得するには、ngrokを使用するか、webookをherokuでホストできます。

0
udayakumar P

固定IPアドレスを持つサーバーが必要だと思います。 Facebookからのリアルタイム更新を使用する場合は、Facebookからの投稿要求を受信するサーバーを構築し、エンドポイントがサーバーによってプッシュされたメッセージを受信できるように、エンドポイントへの長い接続を維持する必要があります。

0
Jason