Відповідьповідомлення недоступне
📩 Відповідь від GPT:
В библиотеке Aiogram для создания ботов на Python вы можете использовать калбек-фабрики для обработки нажатий кнопок. Ниже приведён пример реализации калбек-фабрики в Aiogram 3.x.
Для начала убедитесь, что у вас установлен пакет Aiogram 3.x. Если нет, установите его с помощью pip:
pip install aiogram
Вот пример простого бота с использованием калбек-фабрики:
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.types import CallbackQuery, InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils import executor
API_TOKEN = 'YOUR_API_TOKEN_HERE'
# Создаем объект бота и диспетчера
bot = Bot(token=API_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
# Создаем калбек-фабрику
async def inline_kb_factory() -> InlineKeyboardMarkup:
keyboard = InlineKeyboardMarkup(row_width=2)
buttons = [
InlineKeyboardButton(text='Кнопка 1', callback_data='button1'),
InlineKeyboardButton(text='Кнопка 2', callback_data='button2'),
]
keyboard.add(*buttons)
return keyboard
@dp.message_handler(Command("start"))
async def send_welcome(message: types.Message):
keyboard = await inline_kb_factory()
await message.reply("Привет! Нажми на кнопку:", reply_markup=keyboard)
@dp.callback_query_handler(lambda c: c.data in ['button1', 'button2'])
async def process_callback_button(callback_query: CallbackQuery):
code = callback_query.data
if code == 'button1':
await bot.answer_callback_query(callback_query.id, text='Вы нажали кнопку 1!')
elif code == 'button2':
await bot.answer_callback_query(callback_query.id, text='Вы нажали кнопку 2!')
# Удаляем клавиатуру после нажатия
await callback_query.message.delete_reply_markup()
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Объяснение кода:
1. Импортируем необходимые модули: Мы импортируем все нужные классы и функции из библиотеки aiogram.
2. Создаем объект бота и диспетчера: Указываем токен вашего бота и создаем объекты Bot и Dispatcher.
3. Калбек-фабрика: Функция inline_kb_factory создает и возвращает InlineKeyboardMarkup с двумя кнопками.
4. Обработчик команды /start: Когда пользователь отправляет команду /start, бот отвечает сообщением с инлайн-кнопками.
5. Обработчик нажатий кнопок: Функция process_callback_button обрабатывает нажатия на кнопки и отправляет соответствующее уведомление пользователю. После нажатия кнопки клавиатура удаляется.
Не забудьте заменить YOUR_API_TOKEN_HERE на ваш реальный токен бота.
💳 -697