Перейти к основному содержимому

Reply-клавиатура

В отличие от inline, Reply Keyboard заменяет системную клавиатуру и показывает кнопки внизу экрана. Тап на кнопку = отправка её текста как обычного сообщения.

Простой пример

{
"chat_id": 12345,
"text": "Что хотите сделать?",
"reply_markup": {
"keyboard": [
[{"text": "📋 Мой профиль"}, {"text": "⚙️ Настройки"}],
[{"text": "💳 Оплата"}]
],
"resize_keyboard": true,
"one_time_keyboard": false
}
}

Параметры markup

ПараметрТипОписание
keyboardarray arrayКнопки рядами
is_persistentboolПоказывать всегда (true) или только когда юзер тапнул input (false)
resize_keyboardboolПодгонять высоту под кнопки
one_time_keyboardboolСкрывать после первого использования
input_field_placeholderstringPlaceholder в поле ввода
selectiveboolПоказывать только определённым юзерам в группе

Специальные кнопки

{"text": "📍 Поделиться геолокацией", "request_location": true}
{"text": "📞 Поделиться контактом", "request_contact": true}
{"text": "📊 Создать опрос", "request_poll": {"type": "regular"}}
{"text": "🪟 Открыть приложение", "web_app": {"url": "https://your-app.com"}}

Скрытие клавиатуры

{
"reply_markup": {"remove_keyboard": true}
}

ForceReply

Заставить юзера ответить с цитатой (полезно для wizard-ов):

{
"reply_markup": {
"force_reply": true,
"input_field_placeholder": "Введите ваше имя",
"selective": true
}
}

Inline vs Reply — что когда

  • Inline — для интерактивных кнопок, callback'ов, web_app, ссылок. Кнопка живёт внутри сообщения.
  • Reply — для постоянных команд, главного меню, частых действий. Заменяет клавиатуру.