Кнопки в боте MAX: семь типов и чем заменить клавиатуру Telegram
Кнопки — это то, на чём держится почти любой бот для бизнеса: меню, выбор услуги, подтверждение заказа. В MAX кнопки устроены похоже на Telegram, но есть одно большое отличие: нет обычной клавиатуры под полем ввода.
Семь типов кнопок
| Тип | Что делает | Аналог в Telegram |
|---|---|---|
callback | Присылает боту событие message_callback с вашим payload | callback_data |
link | Открывает ссылку, до 2 048 символов | url |
message | Отправляет боту заранее заданный текст | Обычная клавиатура |
request_contact | Запрашивает телефон, привязанный к аккаунту MAX | request_contact |
request_geo_location | Запрашивает геопозицию | request_location |
open_app | Открывает мини-приложение в чате с ботом | web_app |
clipboard | Копирует текст в буфер обмена | copy_text |
Лимиты
- До 210 кнопок в 30 рядах и до 7 кнопок в ряду.
- Кнопок link, open_app, request_contact и request_geo_location — до трёх в ряду.
- Текст кнопки — от 1 до 128 символов, длинный обрезается.
- Payload кнопки callback — до 1 024 символов. В Telegram
callback_dataограничен 64 байтами, так что запас больше. - Кнопки в ряду одной ширины, их текст выравнивается по центру.
Чем заменить обычную клавиатуру
В Telegram многие боты показывают меню обычной клавиатурой под полем ввода: нажатие отправляет текст «Меню» или «Мои заказы», и бот реагирует на этот текст. В MAX такой клавиатуры нет, но есть кнопка message, которая делает то же самое: отправляет боту заданный текст. Поэтому обычную клавиатуру можно показать inline-кнопками под сообщением, а логика бота не изменится.
Шлюз BotHop делает эту замену сам: бот отправляет ReplyKeyboardMarkup, а пользователь в MAX видит те же кнопки под сообщением. Нажатие приходит боту тем же текстом, что и в Telegram.
Ответ на нажатие
На нажатие кнопки callback бот отвечает через POST /answers. Можно показать одноразовое уведомление или заменить исходное сообщение целиком. В Telegram для этого два разных метода, answerCallbackQuery и editMessageText.
О чём помнить
- Кнопки не пересылаются вместе с сообщением в другой чат.
- Кнопка request_contact работает только в чате с этим ботом. Ответ содержит hash, по которому можно проверить, что номер настоящий.
- Кнопок оплаты и
switch_inline_queryв MAX нет.
Частые вопросы
Сколько кнопок можно добавить в сообщение MAX?
До 210 кнопок в 30 рядах, до 7 кнопок в ряду. Кнопок link, open_app, request_contact и request_geo_location — до трёх в ряду.
Пересылаются ли кнопки вместе с сообщением?
Нет. Если переслать сообщение бота с кнопками в другой чат, кнопки не перешлются.
Как получить нажатие на кнопку?
Нажатие на кнопку callback приходит боту событием `message_callback`. Ответить можно через `POST /answers`: показать уведомление или заменить сообщение.