Работа с callback-кнопками

Callback-кнопки позволяют обрабатывать нажатия без сообщения от пользователя. При нажатии на кнопку сервер бота получает событие message_event, после чего бот может выполнить нужное действие — например, отредактировать сообщение, показать уведомление, отправить новую клавиатуру или открыть ссылку. Подробнее о параметрах кнопки — в разделе Типы кнопок.

Внешний вид

Callback-кнопки визуально не отличаются от обычных кнопок и поддерживают те же стили. После нажатия на кнопке отображается индикатор выполнения до получения ответа.

Пример callback-кнопкиПример callback-кнопки

Примеры использования

  • •
    Навигация по меню бота. Пользователь нажимает callback-кнопку, бот возвращает новую клавиатуру — переход на следующий уровень меню — без дополнительных сообщений от пользователя.
  • •
    Редактирование сообщения. Пользователь выбирает категорию, например, блюда в inline-клавиатуре, бот редактирует исходное сообщение и отображает новый список.
  • •
    Подтверждение результата действия. Пользователь нажимает кнопку, например «Пополнить баланс», бот выполняет операцию и показывает пользователю информацию «Баланс пополнен» при помощи снекбара без отправки сообщения в чат.

Принцип работы

  1. 1.
    Бот отправляет сообщение с клавиатурой, содержащей кнопку типа callback.
  2. 2.
    Пользователь нажимает кнопку.
  3. 3.
    Бот получает событие message_event через Callback API или LongPoll API.
  4. 4.
    Бот формирует ответ на событие, указывая требуемое действие в параметре event_data, и отправляет в методе messages.sendMessageEventAnswer.
  5. 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
Хеш для навигации в приложении. Будет передан в строке параметров запуска после символа #.

Материалы по теме