Пишу бота на питоне, на pytelegrambotapi
Проблема не решается мной на протяжении уже месяца. После команды /start выводит нужное сообщение, но потом не выводит нужную кнопку для ответа боту, я попытался это решить тем, что можно написать что-нибудь, а бот в ответ будет присылать следующее сообщение и выводить кнопки с выбором нужного жанра фильма, но всё стопорится на первом сообщении. Различные гайды, видео на ютубе, документация не помогают. Могу прислать дополнительный код и другую информацию.
btn1 = types.KeyboardButton('Привет')
@bot.message_handler(commands=['start'])
def start(message):
markup1 = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.chat.id, "Привет, я бот, который может помочь тебе выбрать фильм",
reply_markup=markup1)
markup1.add(btn1)
@bot.message_handler(content_types=['text'])
def text(message):
if message.text:
markup2 = types.ReplyKeyboardMarkup(resize_keyboard=True)
bot.send_message(message.from_user.id, "Выбери жанр фильма", reply_markup=markup2)
markup2.add(btn3, btn4, btn5, btn6, btn7, btn8)
elif message.text == 'Комедия':
img = open(f'.\\{next(phototosend_comedy)}.jpg', 'rb')
bot.send_photo(message.chat.id, img)
bot.send_message(message.from_user.id, f'{next(filmtosend_comedy)}')
Ответы (1 шт):
Автор решения: Mipsirint
→ Ссылка
Добавлять кнопки на клавиатуру нужно ДО отправки сообщения
btn1 = types.KeyboardButton('Привет')
@bot.message_handler(commands=['start'])
def start(message):
markup1 = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup1.add(btn1)
bot.send_message(message.chat.id, "Привет, я бот, который может помочь тебе выбрать фильм",
reply_markup=markup1)
@bot.message_handler(content_types=['text'])
def text(message):
if message.text:
markup2 = types.ReplyKeyboardMarkup(resize_keyboard=True)
markup2.add(btn3, btn4, btn5, btn6, btn7, btn8)
bot.send_message(message.from_user.id, "Выбери жанр фильма", reply_markup=markup2)
elif message.text == 'Комедия':
img = open(f'.\\{next(phototosend_comedy)}.jpg', 'rb')
bot.send_photo(message.chat.id, img)
bot.send_message(message.from_user.id, f'{next(filmtosend_comedy)}')