В этом документе рассказывается, как выполнять для Страницы Facebook следующие действия:
Предполагается, что вы ознакомились с обзором Pages 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
.
Пользователь вашего приложения должен иметь права на выполнение задач CREATE_CONTENT
, MANAGE
и (или) MODERATE
на Странице, указываемой в запросах API.
При тестировании вызова 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, содержащий имена людей, их ID внутри страницы и задачи, которые они могут выполнять на Странице.
{ "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
можно использовать для поиска ID Страниц с использованием функции доступа к общедоступному контенту Страницы.
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 предлагает внести изменения в сведения о Странице, например исправить опечатку или обновить категории Страницы, чтобы людям было проще находить ее. Чтобы получать эти уведомления, вам нужно подписаться на Webhooks page_upcoming_change
и (или) page_change_proposal
.
Получив информацию, вы можете:
Чтобы явным принять или отклонить предлагаемое изменение, отправьте запрос POST
к конечной точке /page_change_proposal_id
и установите для поля accept
значение true
, чтобы принять изменение, или false
, чтобы отклонить его. page_change_proposal_id
— это значение proposal.id
, полученное в уведомлении Webhooks page_upcoming_change
, или значение value.id
, полученное в уведомлении Webhooks page_change_proposal
.
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
каждого из которых указаны настройки Страницы и их значения, 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, в котором параметр success
будет иметь значение true
.
Вы можете получить отзывы для Страницы, в том числе имя человека, оставившего отзыв, его ID внутри страницы, характер рекомендации (положительная или отрицательная), а также текст отзыва. Для этого отправьте запрос 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
ID внутри страницы для блокируемого пользователя.
curl -i -X POST "https://graph.facebook.com/v21.0
/page_id/blocked"
-H "Content-Type: application/json" \
-d '{
"user":"psid_to_block",
}'
В случае успеха приложение получит ответ JSON, в котором для ID внутри страницы будет установлено значение true
.
{ "psid_to_block": true }
Узнайте, как публиковать ссылки, фото и видео на своей Странице.