#python #menu #telegram-bot #submenu
Вопрос:
Я создаю бота в telegram, и у меня есть меню. Дело в том, что каждый раз, когда кто-то выбирает опцию, вместо изменения меню отправляется новое сообщение. Я понимаю, что это связано с функцией send_message, но я не знаю, как это сделать.
@bot.message_handler(commands=['menu']) def menu(message): keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add(telebot.types.InlineKeyboardButton('Reglas', callback_data='Reglas')) keyboard.add(telebot.types.InlineKeyboardButton('Consultas', callback_data='Consultas')) keyboard.add(telebot.types.InlineKeyboardButton('Historia', callback_data='Historia')) keyboard.add(telebot.types.InlineKeyboardButton('Tiradas', callback_data='Tiradas')) keyboard.add(telebot.types.InlineKeyboardButton('Admin', callback_data='adm')) bot.send_message(message.chat.id,'Has llamado al menu?',reply_markup=keyboard) @bot.callback_query_handler(func=lambda c:True) def submenus(c): if c.data == 'Tiradas': keyboard = telebot.types.InlineKeyboardMarkup() keyboard.add(telebot.types.InlineKeyboardButton('Tirada suelta', callback_data='ts')) keyboard.add(telebot.types.InlineKeyboardButton('Tirada de personajes',callback_data='tp')) bot.send_message(c.message.chat.id, 'Deseas tiradas sueltas o para crear personajes?', reply_markup=keyboard)
Я начал программировать несколько недель назад, прошу вашего терпения. Большое вам спасибо за ваше терпение.
Ответ №1:
Так… Это происходит из-за того, что вы недостаточно изучили api telegram. Если вы хотите отредактировать сообщение вместо отправки нового, вы просто не будете использовать send_message!
Вы будете использовать edit_message_text, в этом случае ваш код будет выглядеть следующим образом:
bot.edit_message_text(chat_id=c.message.chat.id, message_id=c.message.message_id, text='Deseas tiradas sueltas o para crear personajes?', reply_markup=keyboard)
Комментарии:
1. Большое вам спасибо, правда в том, что я не очень хорошо разбираюсь в программировании. Спасибо, что уделили мне время