Открыть сервис

ReplyKeyboardMarkup

ReplyKeyboardMarkup — это объект в API мессенджера Telegram, используемый ботами для отображения пользователю набора предопределённых кнопок в виде обычной клавиатуры (вместо стандартной текстовой строки ввода). Данный тип клавиатуры позволяет упростить взаимодействие с ботом, ограничивая варианты ответов и снижая вероятность ошибок ввода.

Описание и назначение

ReplyKeyboardMarkup относится к классу объектов «клавиатуры ответа» (Reply Markup). В отличие от InlineKeyboardMarkup, кнопки ReplyKeyboardMarkup прикрепляются непосредственно к полю ввода сообщения в чате, заменяя собой системную клавиатуру устройства. После нажатия на такую кнопку текст, указанный на ней, отправляется в чат как обычное сообщение. Это позволяет боту получать структурированные данные (например, команды, варианты выбора, ответы на вопросы) без необходимости распознавать произвольный текст.

Клавиатура автоматически скрывается после отправки сообщения, если в параметре one_time_keyboard установлено значение true. Если параметр resize_keyboard равен true, размер кнопок подстраивается под содержимое (например, короткие тексты отображаются компактнее). Параметр selective позволяет показывать клавиатуру только определённым пользователям в групповых чатах.

Структура объекта

Объект ReplyKeyboardMarkup в JSON-формате содержит следующие ключевые поля:

KeyboardButton

Каждая кнопка представляет собой объект KeyboardButton с полями:

Применение

ReplyKeyboardMarkup широко используется для реализации пошаговых сценариев, меню, анкет, игр и любых других интерактивных диалогов, где требуется жёсткая структура ввода. Типичные примеры:

Различия с InlineKeyboardMarkup

Основное отличие заключается в способе отображения и обработки нажатий:

Ограничения и особенности

Пример реализации (псевдокод)

При отправке сообщения через Bot API используется параметр reply_markup:

``json { "chat_id": 123456789, "text": "Выберите действие:", "reply_markup": { "keyboard": [ [{"text": "Начать игру"}, {"text": "Помощь"}], [{"text": "Настройки"}, {"text": "О боте"}] ], "resize_keyboard": true, "one_time_keyboard": true, "input_field_placeholder": "Нажмите кнопку" } } ``

После нажатия на кнопку «Начать игру» бот получит сообщение с текстом «Начать игру» и сможет обработать его соответствующим образом.

История

ReplyKeyboardMarkup был представлен в Bot API с момента его запуска (2015 год). С тех пор функциональность расширялась: добавлены параметры resize_keyboard, one_time_keyboard, selective, а также новые типы кнопок (request_contact, request_location, request_poll, web_app). Объект остаётся одним из базовых инструментов для создания пользовательских интерфейсов в Telegram-ботах.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →