5. Добавляем кнопки
Поскольку основная идея моего приложения - каталог рецептов, который будет отсортирован по категориям, для начала я пробую добавить первые кнопки к своему боту и их обработку.
Получается довольно долго, но получается.
В процессе я сталкиваюсь с проблемами из-за большого количества реализаций подобного кода для старой версии API, где для добавления кнопок использовался список. С версии 2.0, как оказалось, каждая кнопка стала являться отдельным объектом со своими методами и атрибутами, поэтому итоговый код выглядит следующим образом:
import telebot
from telebot import types
from telebot.types import InlineKeyboardMarkup
import config
bot = telebot.TeleBot(config.TOKEN)
@bot.message_handler(commands=['start'])
def welcome(message):
# Создаем панель с кнопками
keyboard = types.InlineKeyboardMarkup()
# добавляем кнопки keyboard.add(types.InlineKeyboardButton("Сырники",callback_data="cheesecakes"),
types.InlineKeyboardButton("Пироги", callback_data="pies"))
# отправляем сообщение с кнопками
bot.send_message(message.chat.id, 'Давай что-нибудь испечем!', reply_markup=keyboard)
# Обработка нажатой кнопки
@bot.message_handler(content_types=["text"])
def first(message):
bot.send_message(message.chat.id, message.text)
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.message:
if call.data == "cheesecakes":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Сочный сырник")
elif call.data == "pies":
bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id, text="Сладкий пирог")
bot.polling(none_stop=True)
Что ж, начало положено! Идем дальше!