本文档将介绍如何在 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 可为您提供大量与该公共主页相关的信息。
如要获取您可以在其上执行任务的公共主页完整清单、您可以在每个公共主页上执行的所有任务以及每个公共主页的短期公共主页访问口令,请使用用户访问口令向 /user_id/accounts
端点发送 GET
请求。
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
任务,您可以获得可在该公共主页上执行任务(包括每个用户都可以执行的任务)的其他用户名单。
如要获取用户名单和他们可以在该公共主页上执行的任务清单,请向 /page_id/roles
端点发送 GET
请求。
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
任务,您就可以使用公共主页访问口令(或者,如果您的应用已获批使用公共主页公开内容访问权限功能,您就可以使用用户访问口令)来查看该公共主页的详细信息,如简介、邮件、营业时间等。
如要获取公共主页的详细信息,请向 /page_id
端点发送 GET
请求,在其中加入 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
任务,您就可以使用公共主页访问口令向 /page_id
端点发送 POST
请求,并在其中加入要更新的参数,如 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 会针对您的公共主页详细信息提出更改建议,如纠正错别字或更新您公共主页上的类别,使人们更容易找到您的公共主页。如要获得这些通知,您必须订阅 page_upcoming_change
和/或 page_change_proposal
Webhooks。
收到通知后,您可以立即执行以下操作之一:
如要主动接受或拒绝更改建议,请向 /page_change_proposal_id
端点发送 POST
请求,并在其中加入 accept
字段(将值设为 true
为接受更改;将值设为 false
为拒绝更改)。page_change_proposal_id
是您在 page_upcoming_change
Webhooks 通知中收到的 proposal.id
值或您在 page_change_proposal
Webhooks 通知中收到的 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
任务,您就可以使用公共主页访问口令向 /page_id/settings
端点发送 GET
请求,以获取该公共主页的完整设置清单。
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 }, ... ] }
如要更新公共主页设置,请向 /page_id/settings
端点发送 POST
请求,在其中加入 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
。
您可以获取对公共主页的点评(包括点评人的姓名、其公共主页范围编号、是否是正面或负面建议以及点评文本),通过向 /page_id/ratings
端点发送 GET
请求即可获取。
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" } }, ... ] }
如要屏蔽某位用户,禁止其在某个公共主页上发表评论,请向 /page_id/blocked
端点发送 POST
请求,在其中加入 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 }
了解如何向您的公共主页发布链接、照片和视频。