Не работает кнопка Назад Aiogram
Попытался сделать бота в телеграмм с кнопкой возврата в начальное меню но ничего не получается, и не могу понять в чем ошибка. сможет кто помочь?
@bot.message_handler(commands=['start'])
def start(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
detailes = types.InlineKeyboardButton('Детали о сервисе', callback_data='detailes_1')
services = types.InlineKeyboardButton('Услуги', callback_data='services_2')
instruction = types.InlineKeyboardButton('Инструкция', callback_data='instruction_3')
markup.add(detailes, services, instruction)
bot.send_message(message.chat.id, 'Приветствуем вас! В магазине PayMent out!\nВыберите информацию для '
'отображения: ', reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
if call.message:
if call.data == 'detailes_1':
markup1 = types.ReplyKeyboardMarkup(resize_keyboard=True)
back = types.InlineKeyboardButton('Назад в меню', callback_data='back_1')
markup1.add(back)
bot.send_message(call.message.chat.id,
"Выберите,что вам нужно,если хотите вернуться в меню просто нажмите кнопку 'Назад в меню'",
reply_markup=markup1)
elif call.data == 'back_1':
bot.send_message(call.message.chat.id, "Вы вернулись в меню", reply_markup=None)
bot.polling(none_stop=True)
if __name__ == '__main__':
bot.infinity_polling(skip_pending=True)
Ответы (2 шт):
Автор решения: oleksandrigo
→ Ссылка
Может потому что у вас кнопка возвращает back_1, а вы ловите back?
UPD.
@bot.message_handler(commands=['start'])
def start(message):
markup = types.InlineKeyboardMarkup(row_width=2)
detailes = types.InlineKeyboardButton('Детали о сервисе', callback_data='detailes_1')
services = types.InlineKeyboardButton('Услуги', callback_data='services_2')
instruction = types.InlineKeyboardButton('Инструкция', callback_data='instruction_3')
markup.add(detailes, services, instruction)
bot.send_message(message.chat.id, 'Приветствуем вас! В магазине PayMent out!\nВыберите информацию для '
'отображения: ', reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def callback(call: types.CallbackQuery):
bot.answer_callback_query(callback_query_id=call.id)
if call.data == 'detailes_1':
markup1 = types.InlineKeyboardMarkup()
back = types.InlineKeyboardButton('Назад в меню', callback_data='back_1')
markup1.add(back)
bot.send_message(call.message.chat.id,
"Выберите,что вам нужно,если хотите вернуться в меню просто нажмите кнопку 'Назад в меню'",
reply_markup=markup1)
elif call.data == 'back_1':
bot.send_message(call.message.chat.id, "Вы вернулись в меню", reply_markup=None)
Автор решения: Nodirbek
→ Ссылка
@bot.callback_query_handler(func=lambda call: True)
def callback(call: types.CallbackQuery):
bot.answer_callback_query(callback_query_id=call.id)
if call.data == 'detailes_1':
markup1 = types.InlineKeyboardMarkup()
back = types.InlineKeyboardButton('Назад в меню', callback_data='back_1')
markup1.add(back)
bot.send_message(call.message.chat.id, "Выберите,что вам нужно,если хотите вернуться в меню просто нажмите кнопку 'Назад в меню'",
reply_markup=markup1)
elif call.data == 'back_1':
bot.send_message(call.message.chat.id, "Вы вернулись в меню", reply_markup=None)