В этой статье использован контент из документации по Webhooks. Если у вас нет опыта работы с Webhooks, ознакомьтесь с документацией по Webhooks.

Webhooks для Страниц

Webhooks для Страниц могут отправлять вам уведомления об изменениях на ваших Страницах в режиме реального времени. Например, можно получать уведомления реального времени каждый раз, когда пользователи публикуют что-то в вашей ленте, комментируют публикации или ставят им отметки "Нравится".

Настройка Webhook Страницы:

  1. Настройте конечную точку и задайте конфигурацию продукта Webhooks.
  2. Установите свое приложение, используя свою Страницу Facebook.

Настройка конечной точки и продукта Webhook

Создайте конечную точку и настройте продукт Webhook с помощью нашего руководства по началу работы. Во время настройки выберите объект Страница и подпишитесь на одно или несколько из перечисленных ниже полей Страницы.

ПолеОписание

feed

Уведомляет об изменениях в ленте Страницы: публикациях, реакциях, репостах и т. п.

messages

Уведомляет о получении Страницей сообщения в Messenger. Список всех доступных полей Webhooks сообщений см. в руководстве по Webhooks для Messenger

Установка приложения

Уведомления Webhook отправляются, только если Страница установила настроенное для Webhooks приложение и если для нее не отключена платформа приложений в настройках приложений. Чтобы установить приложение для Страницы, отправьте из приложения запрос POST к границе контекста subscribed_apps Страницы с использованием маркера доступа Страницы.

Требования

Только для полей, связанных с сообщениями

  • Маркер доступа к Странице, запрошенный у пользователя, который может выполнять задачу MESSAGING на этой Странице

Пример запроса

curl -i -X POST "https://graph.facebook.com/{page-id}/subscribed_apps
  ?subscribed_fields=feed
  &access_token={page-access-token}"

Пример ответа

{
  "success": "true"
}

Чтобы посмотреть, какие приложения установлены для вашей Страницы, отправьте вместо этого запрос GET:

Пример запроса

curl -i -X GET "https://graph.facebook.com/{page-id}/subscribed_apps &access_token={page-access-token} 

Пример ответа

{
  "data": [
    {
      "category": "Business",
      "link": "https://my-clever-domain-name.com/app",
      "name": "My Sample App",
      "id": "{page-id}"
    }
  ]
}

Если для Страницы не установлено ни одно приложение, API вернет пустой набор данных.

Graph API Explorer

Если вы хотите установить приложение программным путем, воспользуйтесь Graph API Explorer:

  1. Выберите свое приложение в раскрывающемся меню Приложение. Вы получите маркер доступа приложения.
  2. Раскройте меню Получить маркер и выберите Получить маркер доступа пользователя. Затем выберите разрешение pages_manage_metadata. Маркер приложения будет заменен маркером доступа пользователя с разрешением pages_manage_metadata.
  3. Нажмите Получить маркер ещё раз и выберите свою Страницу. Маркер доступа пользователя будет заменен маркером доступа к Странице.
  4. Измените метод: раскройте меню GET и выберите POST.
  5. Замените запрос по умолчанию me?fields=id,nameid Страницы, за которым следует /subscribed_apps, а затем отправьте запрос.

Стандартное использование

Получение подробных сведений о Ленте Страницы

Приложение может подписаться на Ленту Страницы и получать уведомления обо всех связанных с Лентой изменениях. Вот пример уведомления, которое отправляется, когда пользователь размещает публикацию на Странице.

Пример ответа Webhooks

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "feed",
            "value": {
              "from": {
                "id": "{user-id}",
                "name": "Cinderella Hoover"
              },
              "item": "post",
              "post_id": "{page-post-id}",
              "verb": "add",
              "created_time": 1520544814,
              "is_hidden": false,
              "message": "It's Thursday and I want to eat cake."
            }
          }
        ],
        "id": "{page-id}",
        "time": 1520544816
      }
    ],
    "object": "page"
  }
]

Для отправки комментариев к соответствующей публикации Страницы используйте post_id из уведомления.

Пример запроса API

curl -i -X POST   "https://graph.facebook.com/{page-post-id}/comments
  ?message=I%20want%20chocolate%20cake%20!
  &access_token=page-access-token" 

Пример ответа API

{
  "id": "{comment-id}"
}