Исходящие Webhook в Пачке — это инструмент для создания интеграций, который позволяет получать уведомления в формате JSON о различных событиях в реальном времени на ваш URL. В этой статье мы разберем настройку, типы событий и особенности использования вебхуков.
1. Перейдите в раздел «Автоматизации»
2. В настройках бота выберите вкладку «Исходящий Webhook»
3. Введите полный URL вашего сервера, на который будут отправляться уведомления
4. У каждого исходящего вебхука автоматически генерируется уникальный токен — Signing secret, который вы не можете изменить. Такая авторизация позволяет серверу проверять и принимать запросы только от доверенного источника. Подробнее здесь.
Если вы выбрали событие «Новые сообщения», то у вас есть возможность выбрать, о каких именно новых сообщениях получать уведомления. Доступно два варианта:
Пачка поддерживает 5 основных типов событий. Они отправляются в формате JSON.
1. Сообщение
Отправляется при создании нового сообщения в чате.
{
"type": "message", //тип объекта
"id": 4062313533, //идентификатор объекта
"event": "new", //тип события (new,update или delete)
"entity_type": "thread", //тип сущности, к которой относится объект (discussion, thread или user)
"entity_id": 14904221, //идентификатор сущности, к которой относится объект
"content": "/new разработка чата", //текст сообщения
"user_id": 18531312, //идентификатор отправителя
"created_at": "2023-01-26T15:25:16.000Z", //время создания сообщения
"url": "https://app.pachca.com/chats/34876123?message=4062313533", //прямая ссылка на сообщение
"chat_id": 34876123, //идентификатор чата, в котором находится сообщение
"parent_message_id": 4062313532, //идентификатор сообщения, к которому написан ответ (или null, если сообщение не является ответом)
"thread": { //объект с параметрами треда (или null, если это сообщение не относится к треду)
"message_id": 5631128658, //идентификатор сообщения, к которому был создан тред
"message_chat_id": 38926752 //идентификатор чата сообщения, к которому был создан тред
}
}
2. Реакция
{
"type": "reaction", //тип объекта
"event": "new", //тип события (new или delete)
"message_id": 21344124, //идентификатор сообщения, к которому относится реакция
"code": "👍", //emoji символ реакции
"user_id": 18531312, //идентификатор пользователя, который добавил или удалил реакцию
"created_at": "2023-01-26T15:25:16.000Z" //время создания сообщения
}
3. Кнопка
{
"type": "button", //тип объекта
"message_id": 21344124, //идентификатор сообщения, к которому относится кнопка
"data": "vote_yes", //данные нажатой кнопки
"user_id": 18531312 //идентификатор пользователя, который нажал кнопку
}
4. Участник чата
{
"type": "chat_member", //тип объекта
"event": "add", //тип события (add или remove)
"chat_id": 34876123, //идентификатор чата, в котором произошло событие
"thread_id": 1243243, //идентификатор треда (или null, если это событие не относится к треду)
"user_ids": [13,321], //идентификаторы пользователей
"created_at": "2023-01-26T15:25:16.000Z" //время события
}
5. Участник пространства
{
"type": "company_member", //тип объекта
"event": "invite", //тип события (invite, confirm, suspend, activate, delete)
"user_ids": [13,321], //идентификаторы пользователей
"created_at": "2023-01-26T15:25:16.000Z" //время события
}
Поскольку исходящие вебхуки позволяют быстро и в реальном времени получать уведомления на URL, в них содержится только базовая информация о событии. Если вам нужна полная информация, то можно сделать запрос через API.
Пример
Вебхук о новом сообщении:
{
"type": "message",
"id": 4062313533,
"event": "new",
"entity_type": "thread",
"entity_id": 14904221,
"content": "/new разработка чата",
"user_id": 18531312,
"created_at": "2023-01-26T15:25:16.000Z",
"url": "https://app.pachca.com/chats/34876123?message=4062313533",
"chat_id": 34876123,
"parent_message_id": 4062313532,
"thread": {
"message_id": 5631128658,
"message_chat_id": 38926752
}
}
API-ответ с расширенной информацией о новом сообщении:
{
"id": 4062313533,
"entity_type": "thread",
"entity_id": 14904221,
"chat_id": 34876123,
"content": "/new разработка чата",
"user_id": 18531312,
"created_at": "2023-01-26T15:25:16.000Z",
"url": "https://app.pachca.com/chats/34876123?message=4062313533",
"files": [
{
"id": 123456,
"key": "path/to/file.pdf",
"name": "document.pdf",
"file_type": "file",
"url": "https://app.pachca.com/files/download/123456"
},
{
"id": 789012,
"key": "path/to/image.jpg",
"name": "screenshot.jpg",
"file_type": "image",
"url": "https://app.pachca.com/files/download/789012",
"width": 1920,
"height": 1080
}
],
"buttons": [
[
{
"text": "Принять",
"url": "https://example.com/accept",
"data": "accept_task"
},
{
"text": "Отклонить",
"url": "",
"data": "decline_task"
}
]
],
"thread": {
"id": 12345,
"chat_id": 67890
},
"forwarding": {
"original_message_id": 123456789,
"original_chat_id": 987654321,
"author_id": 18531312,
"original_created_at": "2023-01-25T12:30:15.000Z",
"original_thread_id": 55555,
"original_thread_message_id": 44444,
"original_thread_parent_chat_id": 33333
},
"parent_message_id": 4062313532,
"display_avatar_url": "https://app.pachca.com/custom_avatars/bot.png",
"display_name": "Бот помощник"
}