Sergiy_Hanzhela
@Sergiy_Hanzhela
Начинающий разработчик!

Как запустить машину состояний при нажатие inline buttons в телеграме?

Есть бот с кнопками! aiogram==2.12.1
Нужно при нажатие кнопки по callback_data запустить state machine
class FormRegistration(StatesGroup):
    live_id = State()

есть обработчик
@dp.callback_query_handler(text='back_office', state=FormRegistration)
async def back_office_callback_handler(query: types.CallbackQuery, state=FSMContext):
    if await get_live_verification(query.from_user.id):
        await send_bot_back_office(query.from_user.id, query.from_user.username)
    else:
        await bot.send_message(query.from_user.id, text=f"{query.from_user.username}\n"
                                f"\n"
                                f"Введите пожалуйста свой ID в компании LIVEGOOD")
        await FormRegistration.live_id.set()

в таком состояние бот стопорится в логах нет ошибок просто не реагирует
INFO:aiogram.contrib.middlewares.logging:Received callback query [ID:2031965829580020780] from user [ID:473103911] for message [ID:660] in chat [private:473103911] originally posted by user [ID:6347015005]
INFO:aiogram.contrib.middlewares.logging:Unhandled callback query [ID:2031965829580020780] from user [ID:473103911] for message [ID:660] in chat [private:473103911] originally posted by user [ID:6347015005]

сказал что получил и не обработал и все!
если убрать state=FormRegistration из декоратора то обработчик работает пробывал так же state=FormRegistration.live_id указать тоже стопор
В доках вроде сказано так можно но чего-то не работает!
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 1
Sergiy_Hanzhela
@Sergiy_Hanzhela Автор вопроса
Начинающий разработчик!
Отвечу сам себе!
вместо вот этого state=FormRegistration нужно использовать state="*"
также надо это указывать в обработчиках состояний!
Успехов!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы