Webhooks от Meta

Webhooks позволяют в режиме реального времени получать уведомления HTTP об изменениях определенных объектов в социальном графе Meta. Например, мы можем уведомлять вас, когда пользователи вашего приложения меняют свой электронный адрес или оставляют комментарии на вашей Странице Facebook. В этом случае вам не придется через Graph API запрашивать данные об изменениях объектов, когда неизвестно, имеются ли вообще эти изменения, что поможет вам не превысить ограничение числа обращений.

Процедуры настройки Webhooks для платежей и Webhooks для Messenger несколько разные. Выберите инструкции по установке Webhooks в зависимости от продукта, для которого вы настраиваете эту функцию.

Объекты, поля и значения

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

Отправляемые уведомления имеют формат HTTP-запросов POST и содержат полезные данные JSON, описывающие внесенное изменение. Например, предположим, что вы настроили Webhooks User и подписались на поле Photos. Если кто-то из пользователей вашего приложения загрузит фото, мы отправим вам примерно такое уведомление:

Образец уведомления

{
  "entry": [
    {
      "time": 1520383571,
      "changes": [
        {
          "field": "photos",
          "value": {
            "verb": "update",
            "object_id": "10211885744794461"
          }
        }
      ],
      "id": "10210299214172187",
      "uid": "10210299214172187"
    }
  ],
  "object": "user"
}

Сервер с поддержкой HTTPS

Webhooks отправляются по HTTPS, поэтому ваш сервер должен иметь возможность получать и обрабатывать запросы HTTPS и иметь действительный сертификат TLS/SSL. Самозаверенные сертификаты не поддерживаются.

Проверка приложения

Для Webhooks проверка приложения не требуется. Однако, чтобы получать уведомления Webhooks об изменениях в объектах, когда ваше приложение находится в рабочем режиме, оно должно иметь соответствующие разрешения на доступ к этим объектам. См. раздел Разрешения ниже.

Разрешения

Как правило, перед своей публикацией приложение должно пройти проверку. Во время этой процедуры приложение может запрашивать предоставление определенных разрешений, которые определяют, к каким типам данных приложение может обращаться при использовании Graph API.

Хотя для использования продукта Webhooks проверка приложения не требуется, он всё же учитывает разрешенияё Это означает, что даже если вы настроили Webhooks и подписались на определенные поля типа объекта, вы не будете получать уведомления об изменении объекта этого типа, если не соблюдены следующие условия:

  • вашему приложению предоставлены разрешения, соответствующие этому типу данных;
  • объект, которому принадлежат данные, предоставил приложению разрешение на доступ к ним (например, пользователь разрешил вашему приложению доступ к своей ленте).

Режим разработки

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

Обратите внимание, что события Webhooks для Messenger в режиме разработки работают иначе. Подробнее см. в документации по Webhooks для Messenger.

Настройка

Чтобы использовать Webhooks, необходимо настроить конечную точку на защищенном сервере (HTTPS), а затем добавить и настроить продукт Webhooks на панели вашего приложения. Эти процедуры описаны в дальнейших документах.

Готовы? Приступим!

Дополнительная информация