Как сделать обработчик колбеков в aiogram 3?
Переделайте пожалуйста код из aiogram 2 в aiogram 3, я не могу разобраться с этой документацией(
Вот клавиатура, но её я смог переделать
start_keyboard = InlineKeyboardMarkup(
inline_keyboard = [
[
InlineKeyboardButton(text = "You can choose this", callback_data="first"),
InlineKeyboardButton(text = "Or this", callback_data="second")
]])
И вот хендлер
@dp.callback_query_handler(text_contains = "first")
async def more_info(call: CallbackQuery):
message_chat_id = call["from"]["id"]
await bot.send_message(chat_id = message_chat_id,
text = "test",
reply_markup = know_more_keyboard,
parse_mode=ParseMode.MARKDOWN)
Ответы (1 шт):
Автор решения: Clark Devlin
→ Ссылка
https://mastergroosha.github.io/aiogram-3-guide/ тут все довольно подробно расписано
оф. дока - https://docs.aiogram.dev/en/latest/
handler.py
from aiogram import Router, F
router = Router()
@router.callback_query(F.data == 'first')
async def first(callback: CallbackQuery) -> None:
print(callback)
main.py
import asyncio
from handler import router
from aiogram import Bot, Dispatcher
async def main():
bot = Bot(token="BOT_TOKEN")
dp = Dispatcher()
dp.include_routers(router)
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot, dispatcher=dp)
if __name__ == "__main__":
asyncio.run(main())