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パートナーに限定されています。申請することはできません。この種のデータがどうしても必要な場合は、これらのパートナーのいずれかに連絡して、ソリューションを開発してもらう必要があります。
次を使用して、リクエストをローカルホストに転送できます。
./ngrok http 8445
https://<your_ngrok_io>/webhook
をコールバックURLとして使用して、Webhookにページをサブスクライブします。Webフックを作成してfbサーバーからfbリクエストを取得する必要があり、webhookはパブリックIPアドレスで実行する必要があります。このパブリックURLは、コールバックURLボックスに入力するものです。そのため、fbサーバーは実行中のwebhookのURL以外のURLを介してユーザーを更新できます。 Webhookを認識するfbのパブリックURLアドレスを取得するには、ngrokを使用するか、webookをherokuでホストできます。
固定IPアドレスを持つサーバーが必要だと思います。 Facebookからのリアルタイム更新を使用する場合は、Facebookからの投稿要求を受信するサーバーを構築し、エンドポイントがサーバーによってプッシュされたメッセージを受信できるように、エンドポイントへの長い接続を維持する必要があります。