Не обрабатывается callback aiogram 3.x
Хочу добавить к команде /help дополнительный вызов c обычных кнопок(т.е. не Inline) через callback, но почему то callback не обрабатывается, хоть и подключен
Структура:
my_project/
├── main.py
├── keyboards.py
├── callbacks/
| └── help.py
└── handlers/
└── base_commands.py
main.py
import asyncio
import logging
from aiogram import Bot, Dispatcher
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from handlers import base_commands
from callbacks import help
logging.basicConfig(level=logging.INFO)
bot = Bot(token=TOKEN,
default=DefaultBotProperties(
parse_mode=ParseMode.MARKDOWN_V2
))
dp = Dispatcher()
async def main():
dp.include_router(base_commands.router)
dp.include_router(help.router)
await bot.delete_webhook(drop_pending_updates=True)
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
keyboards.py
from aiogram.types import KeyboardButton
from aiogram.utils.keyboard import ReplyKeyboardBuilder
def get_base_keyboard():
builder = ReplyKeyboardBuilder()
builder.row(
KeyboardButton(
text='Добавить туннель'),
KeyboardButton(
text='Личный кабинет')
)
builder.row(KeyboardButton(
text='Помощь', callback_data="help")
)
return builder.as_markup()
help.py
from aiogram.filters.command import Command
from aiogram.types import Message, CallbackQuery
from aiogram import Router, F
from handlers import base_commands
router = Router()
@router.callback_query(F.data == "help")
async def callbacks_num(callback: CallbackQuery):
await base_commands.help(callback)
base_commands.py
from aiogram.filters.command import Command
from aiogram.types import Message, CallbackQuery
from aiogram import Router, F
from keyboards import get_base_keyboard
from typing import Union
router = Router()
# Хэндлер на команду /start
@router.message(Command("start"))
async def start(message: Message):
await message.answer("Текст приветствия", reply_markup=get_base_keyboard())
# Хэндлер на команду /help
@router.message(Command("help"))
async def help(message: Union[Message, CallbackQuery]):
await message.answer("Текст помощи")
В логах INFO:aiogram.event:Update id=X is not handled. Duration 0 ms by bot id=X
.
Пытался по разному менять @router.callback_query(F.data == "help")
, но не помогло