MetaのWebhooks

Webhooksを使うと、Metaソーシャルグラフの特定のオブジェクトに加えられた変更のHTTP通知をリアルタイムで受け取ることができます。例えば、アプリのいずれかのユーザーがメールアドレスを変えたとき、またはユーザーがあなたのFacebookページにコメントを付けたときに通知を受け取ることができます。こうすることで、グラフAPIで発生していないかもしれないオブジェクトへの変更をクエリする必要がなくなります。また、レート制限に達することも回避できます。

支払いのWebhooksMessenger用のWebhooksの構成手順は、若干異なっています。どちらかの製品にWebhookを設定する場合は、それぞれのドキュメントにある設定手順を参照してください。

オブジェクト、フィールド、値

Metaソーシャルグラフには、ユーザーオブジェクトやページオブジェクトなど、さまざまタイプのオブジェクトがあるため、Webhookを設定する際にはまずオブジェクトタイプを選ぶ必要があります。さらに、オブジェクトごとに使えるフィールドが異なるため、そのオブジェクトタイプの特定のフィールドをサブスクリプション登録します。サブスクリプション登録しているいずれかのオブジェクトフィールドで値の変更があった場合、通知が届きます。

通知はHTTP POSTリクエストとして届き、その中に変更について説明するJSONペイロードが含まれています。例えば、User Webhookを設定し、Photosフィールドをサブスクリプション登録したとします。いずれかのアプリユーザーが写真をアップロードすると、次のような通知が届きます。

通知の例

{
  "entry": [
    {
      "time": 1520383571,
      "changes": [
        {
          "field": "photos",
          "value": {
            "verb": "update",
            "object_id": "10211885744794461"
          }
        }
      ],
      "id": "10210299214172187",
      "uid": "10210299214172187"
    }
  ],
  "object": "user"
}

HTTPSサーバー

WebhooksはHTTPSを使用して送信されるので、ご使用のサーバーはHTTPSリクエストを受信して処理できなければなりません。また、有効なTLS/SSL証明書もインストールされている必要があります。自己署名証明書はサポートされていません。

アプリレビュー

Webhooksでは、アプリレビューは必要ありません。ただし、アプリがライブモードになっている間に起きたオブジェクトの変更に関するWebhooks通知を受け取るには、そのアプリに、それらのオブジェクトにアクセスするために関係するアクセス許可が付与されていなければなりません。以下のアクセス許可をご覧ください。

アクセス許可

通常、アプリを公開する前に、アプリレビューを受ける必要があります。レビュー中に、アプリは特定のアクセス許可への承認をリクエストできます。アクセス許可により、グラフAPIの使用時にアプリがアクセスできるデータのタイプが決まります。

Webhooks製品にはアプリレビューは必要ありませんが、アクセス許可は順守されます。つまり、Webhookを設定して、あるオブジェクトタイプの特定のフィールドをサブスクリプション登録したとしても、そのタイプのオブジェクトの変更通知を受け取ることはありません。ただし、以下の場合は例外です。

  • アプリが、当該データタイプに対応するアクセス許可の承認を得ている。
  • 当該データを所有しているオブジェクトが、アプリにそのデータへのアクセス許可を与えている(例: ユーザーがアプリにフィードへのアクセスを許可している)

開発モード

開発モードのアプリは、アプリダッシュボードを通じて開始されたテスト通知か、アプリ上の役割を持つ人が開始した通知のみを受け取ることができます。

Messenger Webhooksイベントに関しては、開発モードの動作が異なっています。詳しくは、Messenger用のWebhooksドキュメントをご覧ください。

設定

Webhooksを使用するには、安全な(HTTPS)サーバーにエンドポイントを設定し、アプリのダッシュボードでWebhook製品を追加して構成する必要があります。一連のドキュメントの残りの部分では、これら両方の手順を実行する方法について説明します。

準備はよろしいですか?それでは始めましょう。

詳しくはこちら