Бот не обрабатывает условие в router
Я пытаюсь сделать функцию приёма данных пользователя при помощи FSM. Я использовал вот такой код:
import asyncio
import logging
from aiogram import Bot, Dispatcher, types, Router
from aiogram.filters import Command, StateFilter
from aiogram.fsm.context import FSMContext
from aiogram.fsm.state import State, StatesGroup
logging.basicConfig(level=logging.INFO)
bot = Bot(token="TOKEN")
dp = Dispatcher()
router = Router()
class Feedback(StatesGroup):
message_text = State()
@router.message(StateFilter(None), Command("feedback"))
async def feedback(message: types.Message, state: FSMContext):
print("Проверочное сообщение")
await bot.send_message(message.from_user.id, "Напишите сообщение:")
await state.set_state(Feedback.message_text)
@router.message(Feedback.message_text)
async def send_message(message: types.Message, state: FSMContext):
await state.update_data(message_text=message.text)
user_data = await state.get_data()
await state.clear()
await bot.send_message(message.from_user.id, "Ваше сообщение принято.")
В консоль выводится
INFO:aiogram.event:Update id=213860384 is not handled. Duration 0 ms by bot id=7344041170
Проверочное сообщение отсутствует.
В связи с этим вопрос: почему бот отказывается выполнять то, что написано в router?
Ответы (1 шт):
Автор решения: Daniil K-R
→ Ссылка
Вы забыли подключить роутер к диспетчеру:
...
logging.basicConfig(level=logging.INFO)
bot = Bot(token="TOKEN")
dp = Dispatcher()
router = Router()
# вот так
dp.include_routers(router)
...
Не благодарите)