Задать вопрос
@Garbage02

Почему не работает FSM(state) при channel_post_handler?

При нажатии на кнопку бот отправляет сообщение с просьбой указать название (название отправляю в ответ), записывая message_data (для примера), дальше через через state должен вызываться обработчик постов в канале, но этого не происходит(в коде не отправляет последний print "test handler"). Если использовать без state все работает, так же если использовать это в самом боте через message_handler тоже все работает. Почему не работает и как можно использовать FSM для сообщений в канале, ибо нужно сохранять несколько подряд сообщений от туда при нажатии кнопки.

@dp.callback_query_handler(text='test_video')
async def test_video(call: types.CallbackQuery, state: FSMContext):
    message_data = await bot.send_message(chat_id=call.message.chat.id, text='Хорошо теперь отправь мне название', reply_markup= ikb_back)

    async with state.proxy() as data:
        data['message_data'] = message_data

    print("test set")  # отправляет
    await astate.Admin_State.test_video.name.set()


@dp.channel_post_handler(state=astate.Admin_State.test_video.name)
async def print_test_video(message: types.Message, state: FSMContext):
    print("test handler")  # не отправляет
  • Вопрос задан
  • 167 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Frik44
В первом хенледере кроме текста попробуйте вписать state=None
А в channel_post в конце завершите FSM
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы