管理粉絲專頁

本文件介紹如何對 Facebook 粉絲專頁執行以下工作:

  • 取得您可以執行任務的粉絲專頁清單,包括:
    • 您可在每個粉絲專頁上執行的特定任務
    • 可用於測試 API 呼叫的每個粉絲專頁的粉絲專頁存取權杖
  • 取得和更新有關粉絲專頁的詳細資料
  • 取得和更新粉絲專頁的設定
  • 取得 Meta 將在粉絲專頁上實作的建議變更的通知
    • 接受或拒絕這些建議的變更
  • 取得粉絲專頁的評論
  • 封鎖用戶存取粉絲專頁

開始之前

本指南假設您已閱讀粉絲專頁 API 總覽

針對能夠在粉絲專頁上執行任務的用戶,您需要實作「Facebook 登入」來要求下列權限及接收用戶或粉絲專頁存取權杖:

  • pages_manage_engagement
  • pages_manage_metadata
  • pages_manage_posts
  • pages_read_engagement
  • pages_read_user_engagement
  • pages_show_list
  • publish_video 權限(若要發佈影片至粉絲專頁)

如果在 API 要求中使用企業系統用戶,則需要 business_management 權限。

應用程式用戶必須能夠在 API 要求中的粉絲專頁上執行 CREATE_CONTENTMANAGE 和/或 MODERATE 任務。

最佳作法

測試 API 呼叫時,可以將 access_token 參數組合包含在存取權杖中。不過,從應用程式進行安全呼叫時,請使用存取權杖類別

要求範例採用方便閱讀的格式。請將粗體、斜體值(例如 page_id)換成您的值。

粉絲專頁、任務和權杖

單一 API 呼叫可針對您可以執行任務的粉絲專頁提供大量資訊。

取得粉絲專頁

若要取得您可以執行任務的所有粉絲專頁清單、您可以在各粉絲專頁上執行的任務,以及各粉絲專頁的短期粉絲專頁存取權杖,請使用用戶存取權杖,傳送 GET 要求至 /user_id/accounts 端點。

要求範例

curl -i -X GET 
     "https://graph.facebook.com/user_id/accounts"

成功後,應用程式會收到包含粉絲專頁物件陣列的 JSON 回應。每個粉絲專頁物件皆包含:

  • 粉絲專頁的名稱
  • 粉絲專頁的編號
  • 粉絲專頁類別、類別名稱和編號
  • 短期粉絲專頁存取權杖
  • 用戶可以在粉絲專頁上執行的所有任務

回應範例

{
  "data": [
    {
      "access_token": "{facebook-for-developers-page-access-token}",
      "category": "Internet Company",
      "category_list": [
        {
          "id": "2256",
          "name": "Internet Company"
        }
      ],
      "name": "Facebook for Developers",
      "id": "{facebook-for-developers-page-id}",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT"
      ]
    },
    {
      "access_token": "{my-outlandish-stories-page-access-token}",
      "category": "Blogger",
      "category_list": [
        {
          "id": "361282040719868",
          "name": "Blogger"
        }
      ],
      "name": "My Outlandish Stories",
      "id": "{my-outlandish-stories-page-id}",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
...
  ]
}

取得其他用戶的任務

如果您可以在粉絲專頁上執行 MANAGE 任務,則可以取得可在該粉絲專頁上執行任務的其他用戶清單,包括每個用戶可執行的任務。

若要取得用戶清單及其可在粉絲專頁上執行的任務,請傳送 GET 要求至 /page_id/roles 端點。

要求範例

curl -i -X GET "https://graph.facebook.com/page_id/roles"

成功後,應用程式會收到 JSON 回應,其中包含用戶名稱、粉絲專頁範圍編號,以及每個用戶可在粉絲專頁上執行的任務。

回應範例

{
  "data": [
    {
      "name": "Person One",
      "id": "page_scoped_id_for_one"
        "tasks": [
          "ANALYZE"
        ]
    },
    {
      "name": "Person Two",
      "id": "page_scoped_id_for_two",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
...
  ],
}

粉絲專頁詳細資訊

如果您可以在粉絲專頁上執行 MANAGE 任務,則可使用粉絲專頁存取權杖,或者如果應用程式已獲准使用「粉絲專頁公開內容存取權限」功能,則可使用用戶存取權杖來查看粉絲專頁的詳細資訊,例如關於、電子郵件、營業時間等等。

取得詳細資訊

若要取得粉絲專頁的相關詳細資訊,請傳送 GET 要求至 /page_id 端點,並將 fields 參數設為您要查看的粉絲專頁詳細資訊。

注意:使用「粉絲專頁公開內容存取權限」功能時,您可以使用 /pages/search 端點來尋找粉絲專頁編號。

要求範例

curl -i -X GET "https://graph.facebook.com/page_id \
     ?fields=about,attire,bio,location,parking,hours,emails,website"

成功後,應用程式會收到 JSON 回應和您要求的欄位值。如果回應中未傳回欄位,表示粉絲專頁未設定此值。例如,如果粉絲專頁未設定 attire 欄位,則不會在回應中傳回此欄位。

更新詳細資訊

如果您可以在粉絲專頁上執行 MANAGE 任務,則可使用粉絲專頁存取權杖來傳送 POST 要求至 /page_id 端點,並設定您要更新的參數,例如 about 參數。

要求範例

curl -i -X POST "https://graph.facebook.com/v21.0/page_id" \
     -H "Content-Type: application/json" \
     -d '{
           "about":"This is an awesome cafe located downtown!",
         }'

成功後,應用程式會收到 JSON 回應,其中 success 設定為 true

Meta 提議的變更

有時候,Meta 會針對您的粉絲專頁詳細資訊提議變更,例如修正錯字,或更新粉絲專頁上的類別,讓用戶更容易找到您的粉絲專頁。若要取得這些通知,您必須訂閱 page_upcoming_change 和/或 page_change_proposal Webhook。

收到通知後,您可以執行下列任一項操作:

  • 不執行任何操作,變更將在通知中指定的時間生效
  • 主動接受變更,變更將立即生效
  • 主動拒絕變更,將不會進行任何變更

接受或拒絕提議的變更

若要主動接受或拒絕提議的變更,請傳送 POST 要求至 /page_change_proposal_id 端點,並將 accept 欄位設為 true 以接受變更,或設為 false 以拒絕變更。page_change_proposal_id 是您在 page_upcoming_change Webhook 通知中收到的 proposal.id 值,或您在 page_change_proposal Webhook通知中收到的 value.id 值。

curl -i -X POST "https://graph.facebook.com/v21.0/page_change_proposal_id" \
     -H "Content-Type: application/json" \
     -d '{
           "accept":"true",
         }'

成功後,應用程式會收到 JSON 回應,其中 success 設定為 true

粉絲專頁設定

如果您可以在粉絲專頁上執行 MANAGE 任務,則可使用粉絲專頁存取權杖來傳送 GET 要求至 /page_id/settings 端點,以取得該粉絲專頁的所有設定清單。

要求範例

curl -i -X GET "https://graph.facebook.com/v21.0/page_id/settings"

成功後,應用程式會收到包含物件陣列的 JSON 回應,其中每個物件都是設為某個粉絲專頁設定的 setting 以及 truefalse 值。

回應範例

{
  "data": [
    {
      "setting": "USERS_CAN_POST",
      "value": false
    },
    {
      "setting": "USERS_CAN_MESSAGE",
      "value": true
    },
    {
      "setting": "USERS_CAN_POST_PHOTOS",
      "value": true
    },
    ...
  ]
}

更新設定

若要更新粉絲專頁的設定,請傳送 POST 要求至 /page_id/settings 端點,並將 option 參數設為您想要更新的設定。

要求範例

curl -i -X POST "https://graph.facebook.com/v21.0/page_id/settings" \
     -H "Content-Type: application/json" \
     -d '{
           "option":{"USERS_CAN_MESSAGE": "true"},
         }'

成功後,應用程式會收到 JSON 回應,其中 success 設定為 true

取得評論

您可以取得粉絲專頁的評論,包括評論者的名稱、其粉絲專頁範圍編號、是正面或負面評價,以及評論文字,請傳送 GET 要求至 /page_id/ratings 端點。

要求範例

curl -i -X GET "https://graph.facebook.com/page_id/ratings" 

成功後,應用程式會收到包含評論物件的 JSON 陣列。每個物件皆包含:

  • created_time,設為評論建立的時間
  • recommendation_type,設為 positivenegative
  • review_text,設為評論的內容
  • reviewer 物件,包含撰寫該評論之用戶的 nameid
{
  "data": [
    {
      "created_time": "unixtimestamp",
      "recommendation_type": "positive",
      "review_text": "I love this page!",
      "reviewer": {
        "name": "Person One",
        "id": "psid_for_one"
      }
    },
    {
      "created_time": "unixtimestamp",
      "recommendation_type": "positive",
      "review_text": "This page is wonderful!",
      "reviewer": {
        "name": "Person Two",
        "id": "psid_for_two"
      }
    },
...
  ]
}

封鎖用戶

若要封鎖某個用戶對粉絲專頁發表評論,請傳送 POST 要求至 /page_id/blocked 端點,並將 user 參數設為您要封鎖之用戶的粉絲專頁範圍編號。

要求範例

curl -i -X POST "https://graph.facebook.com/v21.0/page_id/blocked"
     -H "Content-Type: application/json" \
     -d '{
           "user":"psid_to_block",
         }'

成功後,應用程式會收到 JSON 回應,其中粉絲專頁範圍編號設為 true

{
 "psid_to_block": true
}