Задать вопрос
@kaka888
C, C++, Qt, Python, Flask, aiogram, MySQL, Redis..

Как установить состояние определённому пользователю?

Делаю телеграм-бота на Python aiogram 3. Бот по типу Дайвинчика. Это мой первый бот.
Когда текущий пользователь лайкает анкету другого пользователя, бот отправляет текстовое сообщение пользователю, которого лайкнули:
async def like(tg_id_1: int, tg_id_2: int) -> None:
    """
    :param tg_id_1: The one who liked
    :param tg_id_2: The one who is liked
    """
    await bot.send_message(
        tg_id_2,
        'Кому-то понравилась твоя анкета! Заканчивай с вопросом выше и посмотрим кто это'
    )
    # Здесь надо каким-то образом установить состояние (FSMContext) пользователю с ID tg_id_2
    # при том, что бот в данный момент работает с пользователем с ID tg_id_1


Как установить состояние (FSMContext) другому пользователю, а не текущему?
  • Вопрос задан
  • 107 просмотров
Подписаться 1 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • Нетология
    Python-разработчик с нуля
    6 месяцев
    Далее
Решения вопроса 1
@kaka888 Автор вопроса
C, C++, Qt, Python, Flask, aiogram, MySQL, Redis..
Решил проблему благодаря ответу Михаила Кростелева в аналогичном вопросе.

# from aiogram.fsm.storage.base import StorageKey
# from aiogram.fsm.context import FSMContext

# Получаем контекст нужного нам пользователя
storage_key = StorageKey(
    bot_id=bot.id, chat_id=tg_id_2, user_id=tg_id_2
)
other_user_context = FSMContext(storage=storage, key=storage_key)

# Устанавливаем состояние указанному ранее пользователю
await other_user_context.set_state(MyState.state_x)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ай Москва
от 120 000 до 160 000 ₽
Data World Москва
от 180 000 до 210 000 ₽
Data World Москва
До 200 000 ₽