aiogram, telegram bot, проблема с inline клавиатурами, не получается добавить многоуровневую клавиатуру
я хотел добавить второй уровень инлайн клавиатуры, чтобы при нажатии на первую инлайн клавиатуру пользователю приходила вторая клавиатура
import aiogram
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from config import TOKEN
from aiogram import Bot, types
from aiogram.utils import executor
from aiogram.utils.markdown import text
from aiogram.dispatcher import Dispatcher
bot = aiogram.Bot(token=TOKEN)
dp = aiogram.Dispatcher(bot)
genres_keyboard = InlineKeyboardMarkup(row_width=3)
genres_keyboard.add(
InlineKeyboardButton('Action', callback_data='action'),
InlineKeyboardButton('MMO', callback_data='mmo'),
InlineKeyboardButton('RPG', callback_data='rpg')
)
delivery_keyboard = InlineKeyboardMarkup(row_width=2)
delivery_keyboard.add(
InlineKeyboardButton('Доставка курьером', callback_data='courier'),
InlineKeyboardButton('Самовывоз', callback_data='pickup')
)
@dp.callback_query_handler(lambda c: c.data in ['action'])
async def process_genre(callback_query: aiogram.types.CallbackQuery):
await bot.send_message(
chat_id=message.from_user.id,
reply_markup=delivery_keyboard,
text='Вы успешно выбрали жанр "MMO", теперь необходимо выбрать вариант доставки!')
@dp.callback_query_handler(lambda c: c.data in [ 'mmo'])
async def process_genre(callback_query: aiogram.types.CallbackQuery):
await bot.answer_callback_query(callback_query.id)
await bot.send_message(callback_query.from_user.id, 'Вы успешно выбрали жанр "MMO", теперь необходимо выбрать вариант доставки!')
genre = callback_query.data
@dp.callback_query_handler(lambda c: c.data in ['rpg'])
async def process_genre(callback_query: aiogram.types.CallbackQuery):
await bot.answer_callback_query(callback_query.id)
await bot.send_message(callback_query.from_user.id, 'Вы успешно выбрали жанр "RPG", теперь необходимо выбрать вариант доставки!')
@dp.callback_query_handler(lambda c: c.data in ['courier', 'pickup'])
async def process_delivery(callback_query: aiogram.types.CallbackQuery):
await bot.answer_callback_query(callback_query.id)
delivery = callback_query.data
@dp.message_handler(commands=['start'])
async def process_start_command(message: aiogram.types.Message):
await message.reply('Здравствуйте!\nВы находитесь в магизине игр\nВыберите жанр игры :', reply_markup=genres_keyboard)
if __name__ == '__main__':
aiogram.executor.start_polling(dp)
Источник: Stack Overflow на русском