管理專頁

本文件向您展示如何執行 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 回應,其中包含設為 truesuccess

Meta 的建議變更

有時,Meta 會建議對您的專頁詳情作出變更,例如修正拼寫錯誤,或更新專頁上的類別以幫助用戶更容易找到您的專頁。要獲取此類通知,您必須訂閱 page_upcoming_change 和/或 page_change_proposal Webhook。

收到通知後,您可以執行下列其中一項動作:

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

接受或拒絕建議變更

如要主動接受或拒絕建議的變更,請向 /page_change_proposal_id 端點傳送 POST 要求,並將 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 回應,其中包含設為 truesuccess

專頁設定

如果您可以在專頁上執行 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 回應,其中包含設為 truesuccess

獲取評論

您可以獲取專頁評論,包括評論者姓名、評論者的專頁範圍編號、是正面推薦還是負面評價,以及評論文字,方法是傳送 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
}

後續步驟

了解如何在專頁發佈連結、相片及影片