本文件向您展示如何執行 Facebook 專頁的以下任務:
本指南假設您已閱讀專頁 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_CONTENT
、MANAGE
和/或 MODERATE
任務。
測試 API 呼叫時,您可以在呼叫中加入 access_token
參數,並將其設為您的存取憑證。但是,從您的應用程式發出安全呼叫時,應使用存取憑證類別。
單次 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 回應,其中包含設為 true
的 success
。
有時,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 回應,其中包含設為 true
的 success
。
如果您可以在專頁上執行 MANAGE
任務,則可使用專頁存取憑證傳送 GET
要求至 /page_id/settings
端點,以獲取該專頁所有設定的清單。
curl -i -X GET "https://graph.facebook.com/v21.0
/page_id/settings"
成功的話,應用程式就會收到以下 JSON 回應,其中包含一組物件,每個物件的 setting
都設定為專頁設定,並且值設定為 true
或 false
。
{ "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 回應,其中包含設為 true
的 success
。
您可以獲取專頁評論,包括評論者姓名、評論者的專頁範圍編號、是正面推薦還是負面評價,以及評論文字,方法是傳送 GET
要求至 /page_id/ratings
端點。
curl -i -X GET "https://graph.facebook.com/page_id/ratings"
成功的話,應用程式就會收到以下 JSON 陣列,其中包含評論物件。每個物件包含:
created_time
(設定為評論建立的時間) recommendation_type
(設定為 positive
或 negative
)review_text
(設定為評論內容)reviewer
物件,以及撰寫該評論的用戶的 name
及 id
{ "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 }
了解如何在專頁發佈連結、相片及影片。