Кнопки в Telegram-боте: какие бывают и почему не работают

Какие кнопки бывают в Telegram-ботах, чем отличаются inline-кнопки и клавиатура, как добавить ссылку и почему кнопка нажимается, но бот не отвечает.

Кнопки в Telegram-боте помогают пользователю выбрать действие без команд и ручного ввода текста. Через них можно открыть раздел, подтвердить заказ, перейти на сайт, выбрать вариант ответа или запустить следующий шаг сценария.

В Telegram чаще всего встречаются два типа кнопок:

  • кнопки прямо под сообщением;
  • кнопки вместо обычной клавиатуры.

Внешне они похожи, но работают по-разному. Ниже разберём, что выбрать и почему уже существующая кнопка иногда нажимается, но ничего не происходит.

Кнопки под сообщением

Это inline-кнопки. Они располагаются непосредственно под сообщением бота.

Например:

Выберите действие

Каталог    Узнать цену

Такая кнопка может:

  • показать следующий экран или сообщение;
  • изменить текущее сообщение;
  • открыть сайт;
  • подтвердить действие;
  • переключить страницу каталога;
  • запустить оплату или другой сценарий бота.

При обычном нажатии пользователь не обязан отправлять в чат отдельное сообщение — действие может выполняться внутри сценария бота.

Когда такие кнопки удобнее

Inline-кнопки хорошо подходят, когда выбор относится именно к текущему сообщению.

Например:

Выберите тариф

Старт    Бизнес    PRO

Или:

Подтвердить заказ?

Да    Нет

Пользователю сразу понятно, что нужно нажать, и чат не заполняется лишними сообщениями.

↑ К оглавлению

Кнопки вместо клавиатуры

Второй вариант — кнопочная клавиатура.

Она появляется внизу экрана там, где обычно находится клавиатура телефона.

Например:

Каталог    Мои заказы

Поддержка    Контакты

При нажатии простой текстовой кнопки выбранный вариант отправляется боту как сообщение.

Такие кнопки также могут использоваться, например, чтобы попросить пользователя отправить номер телефона или местоположение.

Этот вариант удобен для постоянного главного меню, которым пользователь пользуется много раз.

↑ К оглавлению

Какие кнопки лучше выбрать

Простой ориентир:

ЗадачаЧто обычно удобнее
Да / НетКнопки под сообщением
Выбор тарифаКнопки под сообщением
Следующая / предыдущая страницаКнопки под сообщением
Открыть сайтКнопка под сообщением
Главное меню ботаКлавиатура
Каталог / Поддержка / КонтактыКлавиатура
Отправить номер телефонаКлавиатура

У одного бота могут одновременно использоваться оба варианта.

Например, снизу постоянно находится основное меню, а после выбора товара бот показывает отдельные кнопки «Подробнее», «Заказать» и «Назад» прямо под сообщением.

↑ К оглавлению

Да.

Кнопка под сообщением может сразу открывать:

  • сайт;
  • страницу товара;
  • форму;
  • страницу оплаты;
  • другой Telegram-ресурс.

Например:

Подробнее о товаре

Открыть сайт

Пользователь нажимает кнопку и переходит по заданной ссылке.

Такой вариант удобен, когда от бота не требуется дополнительное действие внутри чата.

Если кнопка со ссылкой перестала работать, стоит сначала проверить сам адрес: страница могла переехать, быть удалена или перестать открываться.

↑ К оглавлению

Почему кнопка нажимается, но ничего не происходит

Это одна из самых частых проблем.

Внешне кнопка может отображаться совершенно нормально, но после нажатия бот молчит.

Причины обычно такие:

  • для этой кнопки не настроено действие;
  • название или внутреннее действие кнопки изменили, а сценарий бота — нет;
  • нужная часть бота сейчас не работает;
  • произошла ошибка на сервере;
  • кнопка осталась в старом сообщении после изменения логики;
  • ссылка в кнопке неправильная или больше недоступна.

То есть сама кнопка — это только элемент интерфейса. За ней должно быть настроено конкретное действие.

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

Если вместе с кнопками бот вообще перестал отвечать на сообщения и команды, пригодится отдельная инструкция:

Telegram-бот не отвечает: что проверить

↑ К оглавлению

Почему после нажатия долго крутится загрузка

У некоторых кнопок после нажатия Telegram показывает небольшой индикатор ожидания.

Если он долго не исчезает, обычно бот получил нажатие, но не завершил его обработку корректно.

Для пользователя это выглядит как зависшая кнопка.

Причина может находиться уже не в самой клавиатуре, а дальше по цепочке:

нажатие → бот → сценарий → сервер → ответ пользователю

Если на одном из этих этапов возникает ошибка, внешне это может выглядеть просто как «кнопка не работает».

Для проверки таких проблем полезно понимать, как бот общается с Telegram через:

Telegram Bot API

↑ К оглавлению

Почему появилась старая клавиатура

Ещё одна распространённая ситуация: меню бота уже поменяли, но у пользователя остаются старые кнопки внизу экрана.

Так бывает с клавиатурой, которая заменяет обычную клавиатуру Telegram. Она может сохраняться у пользователя, пока бот не отправит обновлённый вариант или не уберёт старое меню.

Поэтому после изменения кнопок лучше проверить бота:

  • в своём обычном диалоге;
  • после повторного запуска сценария;
  • на другом аккаунте;
  • в новом тестовом чате, если это возможно.

Так проще понять, действительно ли бот отправляет старое меню или оно осталось только у конкретного пользователя.

↑ К оглавлению

Можно ли добавить кнопки в уже работающего бота

Да. Переписывать весь бот обычно не требуется.

Можно, например:

  • добавить новое меню;
  • заменить названия кнопок;
  • изменить порядок;
  • добавить кнопку со ссылкой;
  • добавить подтверждение действия;
  • сделать кнопку «Назад»;
  • убрать ненужные пункты;
  • изменить действие существующей кнопки.

Но способ изменения зависит от того, как именно сделан бот.

Если бот собран в конструкторе, кнопки обычно меняются через интерфейс этого сервиса.

Если это собственный бот, изменения вносятся в его сценарий, после чего обновляется работающая версия на сервере.

Если бот использует команды вроде /start или /help, отдельно посмотрите статью:

Команды Telegram-бота: как они работают

↑ К оглавлению

Нужна помощь с кнопками Telegram-бота?

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

Можно проверить текущий сценарий, найти место, где ломается обработка, и изменить только нужную часть.

Нужно исправить или доработать Telegram-бота?

↑ К оглавлению

Частые вопросы

Как добавить кнопку в Telegram-бота?

Зависит от того, как создан бот. В конструкторе кнопки обычно добавляются через редактор сценария. В собственном боте их добавляют в нужное сообщение или меню.

Чем inline-кнопки отличаются от обычных?

Inline-кнопки находятся непосредственно под сообщением и запускают связанное с ним действие. Кнопочная клавиатура располагается внизу экрана и чаще используется как постоянное меню или набор готовых вариантов ответа.

Можно ли сделать кнопку со ссылкой?

Да. Кнопка под сообщением может открывать сайт, страницу товара, оплату или другой адрес.

Почему кнопка Telegram-бота не работает?

Если кнопка отображается, но действие не выполняется, нужно проверять связанный с ней сценарий, работу самого бота и возможные ошибки на сервере.

Почему после нажатия кнопки долго крутится загрузка?

Обычно бот получил нажатие, но не завершил его обработку или не смог сформировать ответ.

Можно ли поменять кнопки, не создавая нового бота?

В большинстве случаев да. Можно изменить меню и сценарий уже существующего бота без создания нового.

↑ К оглавлению