Меню
Меню — это интерактивная клавиатура с кнопками, которая позволяет пользователям взаимодействовать с ботом без необходимости вводить команды. Меню могут быть многоуровневыми: один раздел ведёт к другому.
💡 Совет: Используйте меню для навигации, выбора действий, фильтрации и любых сценариев, где пользователю нужно выбрать вариант из списка.
Создание меню
- Перейдите в раздел
/adm→ Меню - Нажмите кнопку «Добавить»
- Заполните настройки меню (см. ниже)
- Добавляйте разделы и кнопки
- Сохраните меню
Настройки меню (глобальные)
Эти настройки применяются ко всему меню и всем его разделам.
| Параметр | Описание |
|---|---|
| Название | Техническое название меню (видно только администраторам) |
| Условия открытия меню | Условия, при которых меню доступно пользователю. Если условия не выполнены — меню не отправится |
| Кнопки навигации | Настройка кнопок навигации (см. раздел ниже) |
| Web-Preview | Настройка превью ссылок для всего меню |
| Удалить | Безвозвратное удаление меню |
⚠️ Важно: Условия открытия меню применяются как к главному разделу, так и ко всем дочерним подразделам.
Разделы меню
Меню состоит из разделов. Каждый раздел — это отдельный экран с набором кнопок. Разделы могут быть вложенными (до 10 уровней).
Добавление раздела
- Внутри меню нажмите «Добавить раздел»
- Заполните настройки раздела
Настройки раздела
| Параметр | Описание |
|---|---|
| Условия открытия раздела | Условия, при которых раздел доступен. Применяются только к этому разделу |
| Кнопки навигации | Настройка кнопок навигации для этого раздела (переопределяют глобальные) |
| Web-Preview | Настройка превью ссылок для этого раздела (переопределяет глобальные) |
Редактирование раздела
Чтобы отредактировать существующий раздел, нажмите на его название в дереве меню.
Кнопки навигации
Кнопки навигации отображаются внизу каждого сообщения с меню и позволяют пользователю перемещаться между разделами.
Доступные кнопки
| Кнопка | Действие |
|---|---|
| Назад | Возврат к предыдущему разделу |
| Домой | Переход в корневой (главный) раздел |
| Скрыть | Закрыть меню (удалить клавиатуру) |
| Обновить | Перезагрузить текущий раздел (обновить кнопки) |
| Открыть | Развернуть скрытое меню |
| Кнопка 1–5 | Пользовательские кнопки навигации (можно настроить свои действия) |
Настройка
| Параметр | Описание |
|---|---|
| Кнопки в один ряд | Если включено — все кнопки навигации отображаются в одной строке (горизонтально). Если выключено — каждая кнопка на новой строке (вертикально) |
💡 Совет: Для мобильных устройств рекомендуется использовать вертикальное расположение (режим «Кнопки в один ряд» выключен).
Web-Preview (предпросмотр ссылок)
Настройка отображения превью ссылок в сообщениях меню.
| Параметр | Описание |
|---|---|
| Включено | Включить/выключить отображение превью ссылок |
| Ссылка | Конкретная ссылка, превью которой нужно показать (если не указана — берётся первая ссылка в тексте) |
| Расположение | Сверху — превью над текстом, Снизу — превью под текстом |
| Размер | Большое медиа — стандартный размер, Маленькое медиа — компактный размер |
Значения (Callback Data)
Каждая кнопка в меню может передавать до 5 значений (параметров). Эти значения будут доступны в обработчике нажатия кнопки через переменную ${menu.args1.N}, где N — номер значения от 1 до 5.
Настройка значений
| Параметр | Описание |
|---|---|
| 1–5 значение | Поля для ввода значений. Поддерживаются: строка, число, дробное число, логическое значение |
| Наследуемые значения | Если включено — значения автоматически передаются во все дочерние разделы и обратно при навигации |
Типы значений
| Тип | Пример | Описание |
|---|---|---|
| Строка | delete_user |
До 8 печатных ASCII символов |
| Число | 42 |
Целое число (int64) |
| Дробное число | 10.5 |
Число с плавающей точкой (float64) |
| Логическое | true / false |
Булево значение |
⚠️ Важно: По умолчанию значения хранятся только в рамках одного раздела. При переходе между разделами они сбрасываются. Включите «Наследуемые значения», чтобы передавать их дальше.
Использование значений
В обработчике кнопки значения доступны через переменные:
* ${menu.args1.1} # Первое значение
* ${menu.args1.2} # Второе значение
* ${menu.args1.3} # Третье значение
* ${menu.args1.4} # Четвёртое значение
* ${menu.args1.5} # Пятое значение
Пример: Кнопка с значениями:
- Значение 1:
delete - Значение 2:
${user.id}
В обработчике:
Действие: ${menu.args1.1} # "delete"
ID пользователя: ${menu.args1.2} # 123456789
Добавление кнопок
Типы кнопок
| Тип | Описание |
|---|---|
| Callback | Кнопка-действие. При нажатии отправляет callback-запрос боту. Может запускать триггеры и реакции |
| URL | Кнопка-ссылка. Открывает указанный URL. Не может запускать триггеры |
Параметры кнопки
| Параметр | Тип | Описание |
|---|---|---|
| Текст | Строка | Текст, отображаемый на кнопке (максимум 64 символа) |
| Файл | Медиа | Иконка кнопки (опционально) |
| alert | Строка | Текст всплывающего уведомления с подтверждением (требует нажатия «OK») |
| notification | Строка | Текст уведомления (показывается и исчезает, без подтверждения) |
| Сортировка | Число | Порядок отображения кнопок в разделе (меньше число — выше в списке) |
| Триггер | Выбор | Триггер, который запускается при нажатии (для типа Callback) |
Разница между alert и notification
| Тип | Отображение | Требует подтверждения |
|---|---|---|
| alert | Всплывающее окно | ✅ Да (нужно нажать «OK») |
| notification | Уведомление сверху | ❌ Нет (исчезает через пару секунд) |
💡 Совет: Используйте
alertдля важных подтверждений (например, «Удалить профиль?»). Используйтеnotificationдля информационных сообщений («Данные сохранены»).
Пример структуры меню
Главное меню
├── Профиль (раздел)
│ ├── Посмотреть профиль (кнопка → триггер)
│ └── Редактировать профиль (кнопка → раздел "Редактирование")
├── Магазин (раздел)
│ ├── Товар 1 (кнопка → триггер с значениями: товар_1, 100)
│ ├── Товар 2 (кнопка → триггер с значениями: товар_2, 200)
│ └── Корзина (кнопка → раздел "Корзина")
└── Помощь (кнопка → триггер отправки сообщения)
🔗 Связанные разделы
- ShowMenu — реакция для отправки меню
- Обработчики команд — обработка нажатий кнопок
- Триггеры — настройка реакций на кнопки
- AnswerButton — реакция для уведомлений на кнопки