Настройка и типы событий
Все настройки исходящего вебхука собраны на вкладке Исходящий Webhook в настройках бота.
Вкладка Исходящий Webhook в настройках бота
Общие настройки
- Webhook URL — адрес, на который Пачка отправляет события
- Signing secret — секрет для проверки подписи запроса. Подробнее — в разделе Безопасность и обработчик
- Сохранять историю событий — бот сохраняет все исходящие вебхуки в очередь, и их можно получить через API. Подробнее — в разделе Поллинг
- Игнорировать свои сообщения — не получать вебхуки о сообщениях, отправленных самим ботом. Предотвращает зацикливание, когда бот реагирует на собственные сообщения. Нажатия кнопок обрабатываются всегда, вне зависимости от этой настройки
Webhook URL можно задать не только здесь, но и программно — это удобно для автоматизации (например, n8n регистрирует свой адрес сам):
- метод PUTРедактирование бота — токеном администратора (скоуп
bots:writeи доступ редактора к боту) можно прописатьURLлюбому боту; - метод PUTСаморегистрация вебхука бота — бот прописывает свой
URLсобственным токеном (скоупbot_self:webhook:write), без участия администратора.
Чтобы отключить вебхук, передайте пустую строку в outgoing_url.
Сообщения
В настройках доступны два отдельных пункта:
- Новые сообщения — создание сообщений в чатах, где состоит бот, и в тредах этих чатов
- Редактирование и удаление сообщений — изменение текста, файлов или удаление сообщений в чатах, где состоит бот, и в тредах этих чатов
Для новых сообщений доступны два режима отслеживания:
- О любых сообщениях — все новые сообщения, включая треды
- Сообщения, начинающиеся с команд — только сообщения, начинающиеся с указанных команд (например,
/help,/deploy). Команды начинаются с/и пишутся на английском. Полезно, если вы не хотите получать поток событий, а вам нужно вызвать сценарий только по требованию пользователя
content придёт пустой строкой. Вложения, реакции, кнопки, информацию о пересланном сообщении и другие поля получите методом GETИнформация о сообщении по полю id. Для события delete сообщение уже удалено, поэтому добрать его по id не получится.Реакции
Вебхук отправляется при добавлении или удалении реакции на сообщение в чате, где состоит бот.
message_id или автора методом GETИнформация о сотруднике по user_id.Нажатие кнопок
Вебхук отправляется при нажатии Data-кнопки в сообщении от бота. После получения вы можете PUTотредактировать сообщение — например, изменить или удалить кнопки — или POSTотправить новое как ответ пользователю. Подробнее — в разделе Кнопки в сообщениях.
message_id.Заполнение формы
Вебхук отправляется при отправке пользователем заполненной формы (представления). Подробнее об обработке результатов — в разделе Обработка форм.
chat_id фиксируется в момент открытия формы (нажатия кнопки), а не её отправки — если форма провисела открытой длительное время, поле всё равно ссылается на чат с кнопкой. Для форм, открытых до выкатки этого изменения, chat_id может приходить как null, потому что чат не был зафиксирован при открытии.data, дополнительных запросов не требуется. При необходимости получите автора методом GETИнформация о сотруднике по user_id.Изменение участников чатов
Вебхук отправляется при изменении состава участников чатов, где состоит бот, и в тредах этих чатов.
user_id, а сам чат — методом GETИнформация о чате по chat_id.Изменение участников пространства
Вебхук отправляется при добавлении, удалении или приостановке участников пространства. Не требует добавления бота в чат.
user_id.Отправка ссылок
Вебхук отправляется при появлении ссылки на один из доменов, указанных в настройках Unfurl-бота. Для получения таких событий необходимо создать специального Unfurl-бота. После получения вы можете воспользоваться методом POSTUnfurl (разворачивание ссылок) и создать предпросмотр ссылки в сообщении. Подробнее — в разделе Разворачивание ссылок.
message_id.Видеозвонки
Вебхук отправляется для видеозвонков в чатах, где состоит бот, и в тредах этих чатов. Поле event в payload различает три события: started (звонок начался), finished (звонок завершился) и recording_ready (запись готова). Набор полей payload зависит от события.
finished payload содержит список участников с временем подключения и выхода, для recording_ready — ссылку на файл записи, её размер и длительность. Полные данные участников получите методом GETИнформация о сотруднике по каждому user_id, а чат — методом GETИнформация о чате по chat_id.