Добавление кнопок в ваш Telegram-бот значительно улучшает пользовательский опыт, делая взаимодействие более интуитивным и удобным. Существует два основных типа кнопок⁚ кнопки-ответа (ReplyKeyboardMarkup) и инлайн-кнопки (InlineKeyboardMarkup). Выбор типа зависит от желаемого поведения бота.
Кнопки-ответа (ReplyKeyboardMarkup)
Кнопки-ответа отображаются под полем ввода сообщения и предназначены для выбора пользователем одного из предопределенных вариантов. Они идеально подходят для создания простых меню или для запроса конкретной информации.
Как добавить кнопки-ответа⁚
- Импортируйте необходимые классы⁚
from telebot import types - Создайте объект ReplyKeyboardMarkup⁚
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)(resize_keyboard=Trueпозволяет кнопкам подстраиваться под размер экрана,row_width=2устанавливает количество кнопок в строке). - Создайте кнопки⁚
button1 = types.KeyboardButton("Кнопка 1"),button2 = types.KeyboardButton("Кнопка 2")и т.д. - Добавьте кнопки в разметку⁚
markup.add(button1, button2) - Отправьте сообщение с разметкой⁚
bot.send_message(message.chat.id, "Выберите действие⁚", reply_markup=markup)

Инлайн-кнопки (InlineKeyboardMarkup)
Инлайн-кнопки отображаются непосредственно в сообщении и позволяют создавать более сложные и интерактивные элементы. Они идеально подходят для подтверждения действий, переходов по ссылкам или для вызова дополнительных функций.
Как добавить инлайн-кнопки⁚
- Импортируйте необходимые классы⁚
from telebot import types - Создайте объект InlineKeyboardMarkup⁚
markup = types.InlineKeyboardMarkup - Создайте кнопки⁚
button1 = types.InlineKeyboardButton("Кнопка 1", callback_data="button1")(callback_dataсодержит уникальный идентификатор для обработки нажатия кнопки). - Добавьте кнопки в разметку⁚
markup.add(button1). Можно добавлять кнопки в несколько рядов с помощьюmarkup.row(button1, button2). - Отправьте сообщение с разметкой⁚
bot.send_message(message.chat.id, "Нажмите кнопку⁚", reply_markup=markup) - Обработайте нажатие кнопки⁚ Для этого необходимо использовать callback-функцию, которая будет вызвана при нажатии на кнопку. В этой функции вы можете получить значение
callback_dataи выполнить необходимые действия.
Обработка нажатия инлайн-кнопки⁚
python
@bot.callback_query_handler(func=lambda call⁚ True)
def callback_query(call)⁚
if call.data == «button1″⁚
bot;edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text=»Вы нажали кнопку 1!»)
Важно⁚ Не забывайте заменить TOKEN на ваш токен бота.
Этот код демонстрирует базовые принципы добавления кнопок. Для более сложных сценариев потребуется более глубокое понимание библиотеки python-telegram-bot и API Telegram.