Для создания чат бота с помощью aiogram с inline кнопками внутри кнопок, можно использовать следующий код:
import logging from aiogram import Bot, Dispatcher, types from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton API_TOKEN = 'YOUR_API_TOKEN' logging.basicConfig(level=logging.INFO) bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware()) @dp.message_handler(commands=['start']) async def start(message: types.Message): keyboard = InlineKeyboardMarkup(row_width=1) button1 = InlineKeyboardButton(text="Button 1", callback_data="button1") button2 = InlineKeyboardButton(text="Button 2", callback_data="button2") button3 = InlineKeyboardButton(text="Button 3", callback_data="button3") keyboard.add(button1, button2, button3) await message.answer("Choose an option:", reply_markup=keyboard) @dp.callback_query_handler(lambda query: query.data.startswith('button')) async def process_callback_button(callback_query: types.CallbackQuery): keyboard = InlineKeyboardMarkup(row_width=1) if callback_query.data == 'button1': button1 = InlineKeyboardButton(text="Subbutton 1", callback_data="subbutton1") button2 = InlineKeyboardButton(text="Subbutton 2", callback_data="subbutton2") keyboard.add(button1, button2) await bot.send_message(callback_query.from_user.id, "Choose a suboption:", reply_markup=keyboard) elif callback_query.data == 'button2': button1 = InlineKeyboardButton(text="Subbutton 3", callback_data="subbutton3") button2 = InlineKeyboardButton(text="Subbutton 4", callback_data="subbutton4") keyboard.add(button1, button2) await bot.send_message(callback_query.from_user.id, "Choose a suboption:", reply_markup=keyboard) elif callback_query.data == 'button3': await bot.send_message(callback_query.from_user.id, "No suboptions available") if __name__ == '__main__': from aiogram import executor executor.start_polling(dp, skip_updates=True)
Этот код создаст чат бота, который при команде /start отправит пользователю сообщение с тремя inline кнопками. При нажатии на каждую кнопку, будут отображены дополнительные inline кнопки внутри кнопки.
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.