Не регистрируется хендлер в тг боте
Мне нужно сделать так, чтобы бот по нажатию кнопки переходил в состояние AdminSendMessages.get_text
, а затем ждал от пользователя сообщения и пересылал ему обратно (типичный эхо-бот). Кнопка работает, состояние устанавливается правильно, это видно на выводе через Print. Приветственное слово тоже отправляется, но дальнейший хендлер @dp.message_handler(state=AdminSendMessages.get_text)
не регистрирует это состояние, и соответственно код не работает. Почему хендлер не регистрирует состояние и не пускает код работать? Библиотека aiogram. По всякому спрашивал у GPT, в чем ошибка, но она не нашла ничего(( Пишет что код полностью исправен
class AdminSendMessages(StatesGroup):
get_text = State()
async def commands_admin_send_messages(message: types.Message):
if message.chat.id not in [admin_chat_id, 712433636, vlad_chat_id]:
await bot.send_message(message.chat.id, text=not_admin)
return
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, selective=True)
markup.add('cancel')
welcome_text = '''
Вы собираетесь осуществить массовую рассылку.
Пожалуйста, введите текст сообщения для рассылки или отправьте "cancel" для отмены.
'''
await AdminSendMessages.get_text.set()
print(f"Текущее состояние: {current_state}")
await bot.send_message(message.from_user.id, welcome_text, reply_markup=markup, parse_mode='Markdown')
@dp.message_handler(state=AdminSendMessages.get_text)
async def process_text_for_mass_sending(message: types.Message, state: FSMContext):
text = message.text
await message.answer(text)
await state.finish()
Источник: Stack Overflow на русском