Как получить state определенного юзера Aiogram 3

Как получить объект стейта (FSMContext), дату и сам стейт в aiogram 3?


Ответы (1 шт):

Автор решения: oleksandrigo
from aiogram.fsm.context import FSMContext
from aiogram.fsm.storage.base import StorageKey

user_id = ... # юзер айди искомого юзера
chat_id = ... # чат айди, где находится юзер

state_with: FSMContext = FSMContext(
    bot=bot, # объект бота
    storage=dp.storage, # dp - экземпляр диспатчера 
    key=StorageKey(
        chat_id=chat_id, # если юзер в ЛС, то chat_id=user_id
        user_id=user_id,  
        bot_id=bot.id))

# получение данных
await state_with.get_state()
await state_with.get_data()

await state_with.set_state(AnonFSM.bind) # пример присвоения стейта
await state_with.update_data({"data_name": ...}) # пример добавления данных в дату стейта
→ Ссылка