Работа с callback-кнопками
Callback-кнопки позволяют обрабатывать нажатия без сообщения от пользователя. При нажатии на кнопку сервер бота получает событие message_event, после чего бот может выполнить нужное действие — например, отредактировать сообщение, показать уведомление, отправить новую клавиатуру или открыть ссылку. Подробнее о параметрах кнопки — в разделе Типы кнопок.
Внешний вид
Callback-кнопки визуально не отличаются от обычных кнопок и поддерживают те же стили. После нажатия на кнопке отображается индикатор выполнения до получения ответа.
Пример callback-кнопки
Примеры использования
- •Навигация по меню бота. Пользователь нажимает callback-кнопку, бот возвращает новую клавиатуру — переход на следующий уровень меню — без дополнительных сообщений от пользователя.
- •Редактирование сообщения. Пользователь выбирает категорию, например, блюда в inline-клавиатуре, бот редактирует исходное сообщение и отображает новый список.
- •Подтверждение результата действия. Пользователь нажимает кнопку, например «Пополнить баланс», бот выполняет операцию и показывает пользователю информацию «Баланс пополнен» при помощи снекбара без отправки сообщения в чат.
Принцип работы
- 1.Бот отправляет сообщение с клавиатурой, содержащей кнопку типа
callback. - 2.Пользователь нажимает кнопку.
- 3.Бот получает событие
message_eventчерез Callback API или LongPoll API. - 4.Бот формирует ответ на событие, указывая требуемое действие в параметре
event_data, и отправляет в методеmessages.sendMessageEventAnswer. - 5.Код на стороне пользователя получает ответ и выполняет действие: показывает снекбар, открывает ссылку, приложение или другие действия.
Типы действий
Поле event_data — JSON-объект, описывающий действие, которое должен выполнить клиент.
show_snackbar
Показывает всплывающее уведомление — снекбар. Отображается до 10 секунд и может быть скрыто пользователем вручную.
Всплывающее уведомление
Поле | Тип | Описание |
|---|---|---|
type | string | Тип действия. Значение: show_snackbar. |
text | string | Текст уведомления. Максимальная длина — 90 символов. |
open_link
Открывает указанные URL.
Поле | Тип | Описание |
|---|---|---|
type | string | Тип действия. Значение: open_link. |
link | string | URL, который нужно открыть. |
open_app
Открывает мини-приложение.
Поле | Тип | Описание |
|---|---|---|
type | string | Тип действия. Значение: open_app. |
app_id | int | Идентификатор мини-приложения |
owner_id | int | Идентификатор сообщества, в котором установлено приложение, если требуется открыть в контексте сообщества. |
hash | string | Хеш для навигации в приложении. Будет передан в строке параметров запуска после символа #. |
Материалы по теме
- •
- •
- •
- •