Webhooks

Обзор

С помощью Webhooks приложения с пользовательскими интеграциями могут подписываться на события в Workplace и получать обновления в режиме реального времени. Когда что-то изменяется в Workplace, на URL обратного вызова каждого приложения, подписанного на соответствующую тему Webhook, отправляется запрос HTTPS POST.

Благодаря этому приложения точно знают, когда происходят изменения, и им не приходится постоянно или периодически запрашивать API Graph. Это повышает эффективность их работы.

Webhooks для Workplace работают на основе того же фреймворка, что и Webhooks для API Graph.

Подписка на темы Webhook

В диалоге редактирования пользовательской интеграции есть вкладки для каждой темы Webhook, доступной приложениям в Workplace.

Раздел настройки Webhooks в диалоге редактирования пользовательской интеграции

Чтобы подписаться на тему Webhook, укажите URL обратного вызова и маркер подтверждения, а затем выберите нужные поля подписки.

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

Обработка запросов подтверждения

При добавлении новой или изменении существующей подписки серверы Meta проверяют действительность сервера обратного вызова, отправляя на его URL запрос GET.

К URL добавляется строка запроса со следующими параметрами:

  • hub.mode — в этом параметре передается строка "subscribe";
  • hub.challenge — случайная строка;
  • hub.verify_token — значение verify_token, указанное при создании подписки.

Когда ваша конечная точка получает запрос подтверждения, она должна:

  • Подтвердить, что значение hub.verify_token соответствует строке, указанной вами в поле "Маркер проверки" при настройке Webhook.
  • Передать в ответ значение hub.challenge.

Безопасность Webhook

Все вызовы Webhook на заданные разработчиком URL обратного вызова выполняются по протоколу HTTPS. Таким образом обеспечивается безопасность полезных данных на транспортном уровне.

Для более надежной защиты в каждый запрос POST добавляется используемый для HTTP заголовок X-Hub-Signature-256, который подтверждает, что данные поступили с сервера Meta.

Подробную информацию см. в документации по фреймворку Webhooks.

Все вызовы Webhook на заданные разработчиком URL обратного вызова выполняются по протоколу HTTPS. Таким образом обеспечивается безопасность полезных данных на транспортном уровне.

Подписка на Webhooks через вызов API

В вызовах API для чтения или изменения подписок Webhook необходимо использовать маркер приложения, а не пользовательской интеграции. Маркер приложения образуется путем объединения ID приложения, символа "|" и секрета приложения.

Пример:

ДанныеСтрока

ID приложения

504221332732118

Секрет приложения

d76ab3f35f3ff5aa6ffdc8637a660d2ea7

Маркер приложения

504221332732118|d76ab3f35f3ff5aa6ffdc8637a660d2ea7

Получение текущих подписок Webhook (с указанием маркера приложения)

GET graph.facebook.com
  /{app-id}/subscriptions
    &access_token={your_app_token}

Добавление подписки Webhook (с указанием маркера приложения)

POST graph.facebook.com
  /{app-id}/subscriptions
    ?object=page
    &fields=mention,messages
    &callback_url={your-url}
    &verify_token={your-verify-token}
    &access_token={your_app_token}

Устранение неполадок с подписками приложения на страницы

Если вы не получаете уведомления Webhook, когда должны, рекомендуем проверить, правильно ли настроена подписка между страницей и приложением. Она должна настраиваться автоматически, однако иногда возникают проблемы. Например, если уведомления Webhook долго не доставляются, подписка может быть удалена. Для стороннего приложения в этом случае появится оповещение на панели приложений.

Для проверки подписки можно выполнить следующий вызов API.

Получение текущей подписки приложения на страницу (с указанием маркера приложения)

GET graph.facebook.com
  /me/subscribed_apps?access_token={your_page_token}

Чтобы создать подписку заново, можно использовать следующий вызов API.

Повторное создание текущей подписки приложения на страницу (с указанием маркера приложения)

POST graph.facebook.com
  /me/subscribed_apps?access_token={your_page_token}
	{"subscribed_fields": ["messages"...]}

Темы Webhook

Действия в Workplace группируются в темы. У каждой темы есть ряд полей, которые связаны с соответствующими событиями. Приложения могут подписываться на обновления Webhook по темам и на определенные поля каждой темы.

Сейчас в Workplace предлагаются перечисленные ниже темы и группы Webhook.

Страница

Дополнительную информацию см. в справке по этой теме.

Поле подпискиДействие

mention

Активируется, когда страница с пользовательской интеграцией (бот) упоминается в группе.

messages

Активируется, когда странице с пользовательской интеграцией (боту) отправляется сообщение в рабочем чате.

message_deliveries

Активируется при доставке сообщения, отправленного страницей с пользовательской интеграцией (ботом).

messaging_postbacks

Активируется при нажатии кнопки обратной передачи в рабочем чате.

message_reads

Активируется, когда получатель прочитывает сообщение, отправленное страницей с пользовательской интеграцией (ботом).

Группы

Дополнительную информацию см. в справке по этой теме.

Поле подпискиДействие

posts

Активируется при добавлении, обновлении или удалении публикации в группе.

comments

Активируется при добавлении, обновлении или удалении комментария к публикации в группе.

membership

Активируется при изменении членства в группе.

membership_requests

Активируется, когда пользователь подает запрос на участие в группе.

Пользователь

Дополнительную информацию см. в справке по этой теме.

Поле подпискиДействие

status

Активируется, когда пользователь публикует или редактирует обновление статуса в своем профиле. Это касается и публикаций в хронике пользователя.

events

Активируется при создании, принятии или отклонении события пользователем.

message_sends

Активируется, когда пользователь отправляет сообщение в Чате Workplace.

message_unsends

Активируется, когда пользователь удаляет сообщение в Чате Workplace для всех участников переписки.

timeline_comments

Активируется при добавлении комментария к публикации в хронике пользователя.

Безопасность

Дополнительную информацию см. в справке по этой теме.

admin_activity

Эти события активируются при добавлении или удалении администратора в сообществе Workplace.

СобытиеДействие

admin_set_to_unclaimed

Администратор отметил аккаунт пользователя как незанятый на панели администратора или через API Account Management.

admin_force_log_out

Администратор выполнил принудительный выход из аккаунта пользователя на всех устройствах через панель администратора.

admin_deactivate

Администратор деактивировал аккаунт на панели администратора или с помощью API Account Management.

admin_activate_account

Администратор активировал аккаунт на панели администратора или с помощью API Account Management.

force_password_reset

Администратор принудительно сбросил пароль пользователя на панели администратора.

admin_create_account

Администратор создал аккаунт на панели администратора.

compromised_credentials

Эти события активируются, когда у нас есть подозрение, что пароли некоторых аккаунтов пользователей в сообществе Workplace находятся под угрозой.

СобытиеДействие

found_compromised_credentials

В Workplace обнаружены скомпрометированные учетные данные.

files

Эти события активируются при выполнении действий с файлами в Workplace.

СобытиеДействие

group_file_upload

Пользователь загрузил файл в группу.

group_file_download

Пользователь скачал файл из группы.

file_upload_malware_found

В загруженном файле обнаружено вредоносное ПО.

groups

Эти события активируются, когда пользователь создает группу для сотрудничества в Workplace или вступает в нее.

СобытиеДействие

mcg_join

Пользователь сообщества вступил в группу для сотрудничества.

mcg_create

Пользователь сообщества создал группу для сотрудничества.

integrations

Эти события активируются, когда администратор создает интеграцию или изменяет ее свойства.

СобытиеДействие

custom_integration_create

Администратор создал пользовательскую интеграцию.

custom_integration_edit

Администратор изменил пользовательскую интеграцию.

custom_integration_delete

Администратор удалил пользовательскую интеграцию.

custom_integration_token_reset

Администратор сгенерировал новый маркер доступа для пользовательской интеграции.

content_app_install

Администратор создал интеграцию контента.

content_app_uninstall

Администратор удалил интеграцию контента.

invites

Эти события активируются, когда пользователь присоединяется к сообществу Workplace, отправляя себе приглашение.

СобытиеДействие

coworker_invite_sent

Пользователь пригласил коллегу присоединиться к сообществу.

self_invite_sent

Пользователь запросил электронное письмо с приглашением для себя.

passwords

Эти события активируются, когда пользователь меняет свой пароль или запрашивает его сброс.

СобытиеДействие

password_change

Пароль пользователя был изменен в настройках аккаунта или в результате восстановления.

password_reset_request

Запущено восстановление пароля пользователя. На его электронный адрес отправлен код.

password_reset_wrong_code

Пользователь ввел неправильный код восстановления для сброса пароля.

password_reset_success

Восстановление пароля прошло успешно.

sessions

Эти события активируются, когда пользователь входит в аккаунт Workplace или выходит из него.

СобытиеДействие

log_in

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

log_out

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

Не активируется при принудительном выходе, инициированном администратором (см. событие admin_force_log_out).

two_factor

Эти события активируются, когда пользователь включает или отключает двухфакторную аутентификацию.

СобытиеДействие

two_factor_enable

Пользователь включил двухфакторную аутентификацию на вкладке "Настройки". При этом факт подтверждения номера телефона не имеет значения.

two_factor_disable

Пользователь отключил двухфакторную аутентификацию на вкладке "Настройки". При этом факт отключения этой функции для определенного номера телефона не имеет значения.

add_two_factor_phone

Пользователь добавил и подтвердил номер телефона для двухфакторной аутентификации.

two_factor_code_success

Пользователь ввел действительный код двухфакторной аутентификации при входе через обычную или мобильную версию сайта Workplace.

two_factor_code_failure

Пользователь ввел недействительный код двухфакторной аутентификации при входе через обычную или мобильную версию сайта Workplace.

two_factor_code_success_m

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

two_factor_code_failure_m

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

reseller_events

События, связанные с торговым посредником.

СобытиеДействие

reseller_user_added

Разрешает пользователю без прав администратора в компании-посреднике доступ к консоли торгового посредника.

reseller_user_removed

Запрещает пользователю без прав администратора в компании-посреднике доступ к консоли торгового посредника.

reseller_invite_sent

Торговый посредник отправляет другой компании приглашение к сотрудничеству.

reseller_invite_accepted

Компания принимает приглашение торгового посредника к сотрудничеству.

reseller_invite_declined

Компания отклоняет приглашение торгового посредника к сотрудничеству.

Ссылки

Дополнительную информацию см. в справке по этой теме.

СобытиеДействие

preview

Метаданные пользователя, запрашивающего доступ к публикации ссылок.

collection

Метаданные опубликованной в Workplace ссылки для создания предварительного просмотра.

Библиотека знаний

Дополнительная информация доступна в Документации для API Graph категории Библиотеки знаний.

Поле подпискиДействие

categories

Активируется при добавлении, обновлении или удалении контента Библиотеки знаний или при обновлении аудитории чтения.

comments

Активируется при добавлении, обновлении или удалении нового комментария в Библиотеке знаний.

quicklinks

Активируется при добавлении, обновлении или удалении быстрой ссылки Библиотеки знаний.