@Boss_Abu

Как сделать инлайн клавиатуру с заменой сообщения на теле бот?

Короче я написал код и при нажатии на кнопку "назад" Не меняется сообщение а остаётся как есть

Сам код:
import telebot
from telebot import types

token = "Тут ваш токен"

bot=telebot.TeleBot(token)

@bot.message_handler(content_types=['text'])
def inline_key(a):
    if a.text == "/start":
        mainmenu = types.InlineKeyboardMarkup()
        key1 = types.InlineKeyboardButton(text='Игры ', callback_data='key1')
        key2 = types.InlineKeyboardButton(text='Приложения ', callback_data='key2')
        key10 = types.InlineKeyboardButton(text = ' Канал JUICY APP', url="http://t.me/Juicy_apk")
        mainmenu.add(key1, key2)
        mainmenu.add(key10)
        
        bot.send_message(a.chat.id, 'Приветствую  Ты в каталоге игр и приложений канала @Juicy_apk\nВыбери что хочешь найти:', reply_markup=mainmenu)

@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    if call.data == "mainmenu":
        mainmenu = types.InlineKeyboardMarkup()
        key1 = types.InlineKeyboardButton(text='Игры ', callback_data='key1')
        key2 = types.InlineKeyboardButton(text='Приложения ', callback_data='key2')
        key10 = types.InlineKeyboardButton(text="Канал JUICY APP", url="http://t.me/Juicy_apk")
        mainmenu.add(key1, key2)
        mainmenu.add(key10)
        bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id, reply_markup=mainmenu)
    elif call.data == "key1":
        next_menu = types.InlineKeyboardMarkup()  
        key3 = types.InlineKeyboardButton(text='Симуляторы', callback_data='key3')
        key5 = types.InlineKeyboardButton(text='Гонки', callback_data='key5')
        back = types.InlineKeyboardButton(text='Назад', callback_data='mainmenu')
        next_menu.add(key3, key5, back)
        bot.edit_message_text("Приветствую  Ты в каталоге игр и приложений канала @Juicy_apk\nВыбери что хочешь найти:", call.message.chat.id, call.message.message_id,
                              reply_markup=next_menu)                                                                         
    elif call.data == "key2":
        next_menu2 = types.InlineKeyboardMarkup()
        key4 = types.InlineKeyboardButton(text='Кнопка 4', callback_data='key4')
        back = types.InlineKeyboardButton(text='Назад', callback_data='mainmenu')
        next_menu2.add(key4, back)
        bot.edit_message_text('Приветствую  Ты в каталоге игр и приложений канала @Juicy_apk\nВыбери что хочешь найти:', call.message.chat.id, call.message.message_id,
                              reply_markup=next_menu2)

    elif call.data == "key3":
        next_menu3 = types.InlineKeyboardMarkup()
        back = types.InlineKeyboardButton(text='Назад', callback_data='mainmenu')
        next_menu3.add(back)
        bot.edit_message_text('Нажата кнопка Симуляторы', call.message.chat.id, call.message.message_id, reply_markup=next_menu3) 
        
    elif call.data == "key5":
        next_menu4 = types.InlineKeyboardMarkup()
        back = types.InlineKeyboardButton(text='Назад', callback_data='mainmenu')
        next_menu4.add(back)
        bot.edit_message_text('Нажата кнопка Гонки', call.message.chat.id, call.message.message_id, reply_markup=next_menu4)

   
bot.polling(none_stop=True)
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@twistfire92
Python backend developer
Вы же только клавиатуру и меняете. Хотя в остальных кейсах меняете текст сообщения. Странный вопрос, может не совсем корректно задан.

if call.data == "mainmenu":
        ...
        text = 'Приветствую  Ты в каталоге игр и приложений канала @Juicy_apk\nВыбери что хочешь найти:'
        bot.edit_message_text(text, call.message.chat.id, call.message.message_id, reply_markup=mainmenu)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы