двух человек которые будут общаться через телеграм бота. Что я уже сделал. Первый человек нажал inline кнопку, которая хранит Id пользователя с которым нужно чатится. После того, как первый человек нажал на кнопку, бот записал в базу данных что человек 1 переписывается с человеком 2, а человек 2 с 1 человеком. При этом для человека 1 установился состояние FSM state. Теперь, и прийшло обом сообщение о том что они могу переписывается. Но вот в задача. Когда человек 1 пишет боту, бот пересылает сообщение человеку 1, и оно приходить, но если человек 2 напишет боту, сообщение не придёт, так как хендлер не словит текст, так как для человека 2 не установлено состояние.
Как вариант я думал, что нужно установить состояния для человека 2 тоже, но к сожалению, бот не может кодом сам установить состояние другому ID или может?
Ты можешь установить стейт для любого пользователя, просто создай FSMContext для нужной пары user, chat id
Спасибо большое за ответ. Бо я ранее искал способ, не нашёл в гугле.
Через метод set_state?
Да, либо через диспетчер либо вручную создай контекст для юзера, и потом с ним работай. https://github.com/aiogram/aiogram/blob/a57f9cfc70280de49dcff1c62f1ce8fd317c40ed/aiogram/dispatcher/dispatcher.py#L1176 https://github.com/aiogram/aiogram/blob/a57f9cfc70280de49dcff1c62f1ce8fd317c40ed/aiogram/dispatcher/storage.py#L293
Обсуждают сегодня