以下內容來自 Webhook 產品文件。如不熟悉 Webhook,請參閱 Webhook 文件。

粉絲專頁專用 Webhooks

粉絲專頁專用 Webhooks 可針對粉絲專頁的變更向您傳送即時通知。例如,每當用戶發佈至動態、在貼文留言或對貼文按讚時,您便會收到即時更新。

若要設定粉絲專頁 Webhook:

  1. 設定端點,然後設定 Webhooks 產品
  2. 使用 Facebook 粉絲專頁安裝應用程式

設定端點和 Webhook 產品

請依照新手指南的說明建立端點,並設定 Webhooks 產品。在設定過程中,請務必選擇粉絲專頁物件,並訂閱以下一或多個粉絲專頁欄位。

欄位說明

feed

當粉絲專頁的動態有任何變更(貼文、心情、分享等等),您便會收到通知。

messages

當粉絲專頁透過 Messenger 收到訊息時,您會收到通知。請參閱 Messenger 專用 Webhooks 指南,查看所有可用訊息 Webhooks 欄位的清單

安裝應用程式

只有在粉絲專頁已經安裝您設定好 Webhook 的應用程式,且未在應用程式設定中停用該應用程式平台時,才會傳送 Webhook 通知。若要在粉絲專頁安裝應用程式,請使用粉絲專頁的存取權杖,讓應用程式向粉絲專頁的 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 查詢替換為粉絲專頁的編號,並在後面加上 /subscribed_apps,然後提交查詢。

常見用途

取得粉絲專頁動態詳細資訊

您的應用程式可以訂閱粉絲專頁的動態,每當發生動態相關的變更時便可收到通知。例如,當用戶發佈貼文至粉絲專頁時,系統便會發出以下通知。

Webhook 回應範例

[
  {
    "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}"
}