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

Установка необходимых библиотек
Перед началом работы убедитесь, что у вас установлен Python и библиотека pyTelegramBotAPI. Установите её с помощью pip⁚
pip install pyTelegramBotAPI
Получение API-токена
Для создания Telegram-бота вам потребуется API-токен. Для этого⁚
- Найдите бота BotFather в Telegram.
- Начните с ним диалог и используйте команду
/newbot. - Придумайте имя и username для вашего бота (username должен заканчиваться на «bot»).
- BotFather предоставит вам API-токен. Храните его в секрете!
Создание кнопок с помощью InlineKeyboardMarkup
InlineKeyboardMarkup позволяет создавать кнопки, которые отображаются прямо под сообщением. Они идеально подходят для быстрого выбора опций.
import telebot
from telebot import types
bot = telebot.TeleBot('YOUR_BOT_TOKEN') # Замените на ваш токен
@bot.message_handler(commands=['start'])
def send_welcome(message)⁚
markup = types.InlineKeyboardMarkup
itembtn1 = types.InlineKeyboardButton('Кнопка 1', callback_data='button1')
itembtn2 = types.InlineKeyboardButton('Кнопка 2', callback_data='button2')
markup.add(itembtn1, itembtn2)
bot.send_message(message.chat.id, "Выберите кнопку⁚", reply_markup=markup)
@bot.callback_query_handler(func=lambda call⁚ True)
def callback_query(call)⁚
if call.data == 'button1'⁚
bot.send_message(call.message.chat.id, "Вы нажали кнопку 1!")
elif call.data == 'button2'⁚
bot.send_message(call.message.chat.id, "Вы нажали кнопку 2!")
bot.polling
В этом коде мы создаем две кнопки с помощью types.InlineKeyboardButton и добавляем их в types.InlineKeyboardMarkup. Обработчик callback_query реагирует на нажатие кнопок.
Создание кнопок с помощью ReplyKeyboardMarkup
ReplyKeyboardMarkup создает кнопки, которые отображаются как стандартная клавиатура. Они удобны для выбора из списка опций.
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=True) # resize_keyboard ౼ кнопки подстраиваются под экран, one_time_keyboard ⸺ клавиатура исчезает после использования
itembtn1 = types.KeyboardButton('Вариант 1')
itembtn2 = types.KeyboardButton('Вариант 2')
markup.add(itembtn1, itembtn2)
bot.send_message(message.chat.id, "Выберите вариант⁚", reply_markup=markup)
resize_keyboard=True позволяет кнопкам подстраиваться под размер экрана, а one_time_keyboard=True скрывает клавиатуру после использования.
Обработка нажатий кнопок
Для обработки нажатий кнопок используется callback_query_handler (для InlineKeyboardMarkup) или обработчик обычных сообщений (для ReplyKeyboardMarkup); В обработчике вы анализируете call.data (для inline кнопок) или текст нажатой кнопки и выполняете соответствующие действия.
Добавление кнопок в Telegram-бот – простой, но эффективный способ улучшить пользовательский интерфейс. Выберите тип клавиатуры (inline или reply), создайте кнопки и обработайте их нажатия – и ваш бот станет гораздо удобнее в использовании!