
Кнопки в чат-ботах
Как отправить сообщение с кнопками от имени бота
Для отправки сообщения с кнопками вам потребуется воспользоваться методом API Новое сообщение и полем message.buttons.
Кнопки под сообщением от бота отображаются в виде строк, которые полностью занимают вложенные в них кнопки. Поэтому, buttons — массив строк. Каждая строка — массив объектов кнопок.
У кнопки есть text (отображаемый текст на кнопке) и тип кнопки url или data.
- URL-кнопки — предназначены для перенаправления пользователя по ссылке.
- Data-кнопки — позволяют получать от пользователя данные и реагировать (например, изменять сообщение или отправлять новое).
Ограничения:
- Максимальное количество кнопок в строке - 8
- Максимальное число кнопок у сообщения - 100
- Максимальная длина
textна кнопке - 255 символов - Максимальная длина
dataу кнопки - 255 символов
Пример сообщения от бота с кнопками:
Пример URL-кнопки:
{
"text": "Все мои проекты",
"url": "https://projects.com/list"
}
Пример Data-кнопки:
{
"text": "👍 Согласиться",
"data": "vote_yes"
}
Пример запроса на отправку сообщения с кнопками методом POST https://api.pachca.com/api/shared/v1/messages
{
"message": {
"entity_type": "discussion",
"entity_id": 82753212,
"content": "Новый заказ [Создание одностраничного сайта](https://projects.com/inbox/534) на сумму 8000 руб.",
"buttons": [
/* Строка из двух кнопок */
[
{
"text": "👍 Согласиться",
"data": "vote_yes"
},
{
"text": "❌ Отказаться",
"data": "vote_no"
}
],
/* Одна кнопка */
[
{
"text": "🕒 Перенести на неделю",
"data": "pause_week"
}
],
/* Одна url-кнопка. */
[
{
"text": "Все мои проекты",
"url": "https://projects.com/list"
}
]
]
}
}
``Метод Редактирование сообщения также поддерживает поле
message.buttons
URL-кнопки
При нажатии на URL-кнопку пользователю будет отображено модальное окно с подтверждением перехода по ссылке:

Data-кнопки
Для того чтобы получать события о нажатых пользователем кнопках, вам необходимо указать Webhook URL (куда вы будете получать события) в настройках исходящего вебхука бота и включить уведомления о событии «Нажатие кнопок».
Пример настроек «Исходящий вебхук» у бота:

Когда пользователь нажмет кнопку, на указанный Webhook URL будет отправлен JSON объект с информацией о сообщении, нажатой кнопке и пользователе, который эту кнопку нажал.
Пример исходящего вебхука о нажатии кнопки:
{
"type": "button", //тип объекта
"message_id": 21344124, //идентификатор сообщения, к которому относится кнопка
"data": "vote_yes", //данные нажатой кнопки
"user_id": 2412 //идентификатор пользователя, который нажал кнопку
}
После получения события вы можете дать обратную связь пользователю, например:
-
Через метод API Редактирование сообщения убрать уже не нужные кнопки и добавить новые, а в тексте сообщения показать, что действие совершено.
-
Через метод API Информация о сообщении получить идентификатор чата, в котором лежит сообщение от бота, и написать в этот чат сообщение с новыми кнопками или с результатом действия бота.