Кнопки в сообщениях
Кнопки позволяют добавить к сообщению бота интерактивные элементы: ссылки для перехода на внешние ресурсы и кнопки действий для обработки на сервере. Кнопки располагаются под текстом сообщения в виде строк — каждая строка полностью занимается вложенными в неё кнопками.
Как это работает
Создайте бота
Откройте Интеграции > Боты и нажмите Создать бота. Подробнее — в разделе Создание бота.
Отправьте сообщение с кнопками
Используйте метод POSTНовое сообщение с полем buttons — массив строк, каждая из которых содержит массив кнопок.
Настройте исходящий вебхук
Для обработки Data-кнопок включите вебхук на вкладке Исходящий вебхук в карточке бота, указав URL своего сервера, и отметьте событие Нажатие кнопок. Подробнее — в разделе Исходящие вебхуки.
Обработайте нажатие
При нажатии Data-кнопки бот получает вебхук с данными кнопки. Обработайте событие и дайте обратную связь — отредактируйте сообщение, отправьте новое или откройте модальную форму.
Типы кнопок
Сообщение от бота с кнопками
URL-кнопки
URL-кнопка перенаправляет пользователя по указанной ссылке. При нажатии отображается модальное окно с подтверждением перехода. В нём можно отметить, чтобы ссылки на этот домен и его поддомены дальше открывались без подтверждения.
Подтверждение перехода по ссылке
Data-кнопки
Data-кнопка отправляет данные на сервер через исходящий вебхук. При нажатии бот получает вебхук с информацией о кнопке, сообщении и пользователе, что позволяет реализовать любую логику обработки.
Отправка кнопок
Сообщения с кнопками отправляют токеном бота: нажатие Data-кнопки приходит событием только тому боту, который отправил сообщение. Сами кнопки передаются методом POSTНовое сообщение в поле buttons. Поле представляет собой массив строк, каждая из которых содержит массив кнопок. В одной строке можно комбинировать URL-кнопки и Data-кнопки.
Метод PUTРедактирование сообщения также поддерживает поле buttons. Для удаления всех кнопок передайте пустой массив [].
Обработка нажатий
Для получения событий о нажатиях Data-кнопок настройте исходящий вебхук и включите событие Нажатие кнопок.
При нажатии кнопки бот получает вебхук:
После получения события вы можете:
- PUTРедактирование сообщения — убрать кнопки, добавить новые или обновить текст
- POSTНовое сообщение — как ответ пользователю с результатом действия
- Открыть модальную форму — используя
trigger_idиз вебхука (действителен 3 секунды)
Ограничения
- Максимальное количество кнопок в сообщении — 100
- Максимальное количество строк с кнопками — 32
- Количество кнопок в строке — от 1 до 8
- Максимальная длина
textна кнопке — 255 символов - Максимальная длина
dataу кнопки — 255 символов - Максимальная длина
urlу кнопки — 1024 символа - У кнопки заполнено ровно одно из полей
urlиdata— оба сразу или ни одного дают ошибкуwrong_params
Строка кнопок в интерфейсе не переносится, поэтому даже разрешённые восемь штук на узких экранах читаются плохо — держите в ряду пять-шесть.