以下のコンテンツは、Webhooks製品のドキュメントにあります。Webhooksについてあまり詳しくない場合は、Webhooksのドキュメントを参照してください。

ページのWebhooks

ページ用Webhooksにより、自分のページに対する変更内容についてのお知らせがリアルタイムで届けられるようにすることができます。例えば、ユーザーがフィードに対して投稿したり、投稿に対してコメントしたり、投稿について「いいね!」したりした時点で、リアルタイムで更新を受け取ることができます。

ページWebhookを設定するには、次のようにします。

  1. エンドポイントを設定し、Webhooks製品を構成します
  2. Facebookページを使ってアプリをインストールします

エンドポイントとWebhook製品の設定

スタートガイドに従ってエンドポイントを作成し、Webhooks製品を構成します。構成する際に、Pageオブジェクトを選び、下記のページフィールドのうちの1つ以上をサブスクリプション登録するようにしてください。

フィールド説明

feed

ページのフィードに変更が加えられた時点で通知します。

messages

ページがMessengerでメッセージを受け取った時に通知します。メッセージ関連で使用できるWebhooksフィールドの全一覧は、MessengerのWebhooksガイドをご覧ください。

アプリをインストールする

Webhook通知は、Webhooks構成済みアプリがページによってインストールされた場合、かつアプリ設定アプリのプラットフォームがオフになってはいない場合にのみ送信されます。ページによってアプリがインストールされるようにするには、ページのアクセストークンを使ってアプリからページのsubscribed_appsエッジにPOSTリクエストを送ります。

要件

メッセージ関連のフィールドのみの場合

リクエストの例

curl -i -X POST "https://graph.facebook.com/{page-id}/subscribed_apps
  ?subscribed_fields=feed
  &access_token={page-access-token}"

応答の例

{
  "success": "true"
}

該当ページによってどのアプリがインストールされたかを調べるには、GETリクエストを送信します。

リクエストの例

curl -i -X GET "https://graph.facebook.com/{page-id}/subscribed_apps &access_token={page-access-token} 

応答の例

{
  "data": [
    {
      "category": "Business",
      "link": "https://my-clever-domain-name.com/app",
      "name": "My Sample App",
      "id": "{page-id}"
    }
  ]
}

ページがアプリを何もインストールしていない場合、APIからは空データセットが返されます。

グラフAPIエクスプローラ

プログラムを使用したアプリのインストールが望ましくない場合は、グラフAPIエクスプローラを使って簡単にインストールできます。

  1. [アプリ]ドロップダウンメニューでアプリを選択します。該当アプリのアクセストークンが返されます。
  2. [トークンを取得]ドロップダウンをクリックし、[ユーザーアクセストークンを取得]を選んだ後、pages_manage_metadataアクセス許可を選択します。これにより該当アプリのトークンが、pages_manage_metadataアクセス許可が付与されたユーザーアクセストークンに交換されます。
  3. もう一度[トークンを取得]をクリックして、該当ページを選びます。これにより、ユーザーアクセストークンがページアクセストークンに交換されます。
  4. GETドロップダウンメニューをクリックして動作方式を変更し、POSTを選びます。
  5. デフォルトのme?fields=id,nameクエリを、ページのIDの後に/subscribed_appsを付けたものに置き換えてから、クエリを送信します。

一般的な用途

ページフィードの詳細情報の取得

アプリから、ページのフィードをサブスクリプション登録したり、フィード関連の変更が発生した時点で通知を受け取ったりすることができます。例えば、ユーザーがページに投稿した時点で送信される通知は次のようになります。

Webhooks応答の例

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "feed",
            "value": {
              "from": {
                "id": "{user-id}",
                "name": "Cinderella Hoover"
              },
              "item": "post",
              "post_id": "{page-post-id}",
              "verb": "add",
              "created_time": 1520544814,
              "is_hidden": false,
              "message": "It's Thursday and I want to eat cake."
            }
          }
        ],
        "id": "{page-id}",
        "time": 1520544816
      }
    ],
    "object": "page"
  }
]

ページ投稿に対してコメントするには、通知のpost_idを使います。

APIリクエストの例

curl -i -X POST   "https://graph.facebook.com/{page-post-id}/comments
  ?message=I%20want%20chocolate%20cake%20!
  &access_token=page-access-token" 

API応答の例

{
  "id": "{comment-id}"
}