Из за чего диспетчер aiogram не может зарегистрировать хендлеры?

Рейтинг: 0Ответов: 1Опубликовано: 24.05.2023

Почему-то aiogram не ловит сообщения, все хендлеры, которые я пытаюсь зарегистрировать не работают

Однако если раскомментировать к примеру пятую строку, то хендлер работает.С чем это может быть связано?До этого писал ботов, все было нормально, начал проект с нуля и тут такая проблема

from aiogram import types, Dispatcher
from create_bot import dp, bot
from aiogram.dispatcher.filters import Text

#@dp.message_handler(commands=['start','help'])
async def commands_start(message : types.Message):
    await bot.send_message(message.from_user.id,'Hello')
    await message.delete()


def register_handlers_client(dp : Dispatcher):
    dp.register_message_handler(commands_start, commands=['start','help'])

Ответы

▲ 0

Видимо вы не вызываете функцию register_handlers_client при запуске. Это должно решить проблему:

if __name__ == "__main__":
    register_handlers_client(dp)
    executor.start_polling(dp, skip_updates=True)

Вот минимальный работоспособный код:

from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor

TOKEN = 'ТВОЙ ТОКЕН'

bot = Bot(token=TOKEN)
dp = Dispatcher(bot)


async def commands_start(message: types.Message):
    await bot.send_message(message.from_user.id, 'Hello')
    await message.delete()


def register_handlers_client(dp: Dispatcher):
    dp.register_message_handler(commands_start, commands=['start', 'help'])


if __name__ == "__main__":
    register_handlers_client(dp)
    executor.start_polling(dp, skip_updates=True)