Как правильно реализовать телеграм бота который основывается на диалоге?

Интересно, как реализовывать бота, у которого ответы зависят от текущего состояния.
К примеру первый этап, это выбор тематики, бот отображает кнопки с возможностью выбора.
Второй этап это подгружение картинки, бот ожидает от пользователя фотографию.
Третий этап - текст. Бот ожидает текст статьи от 180 символов.

И каждый из этих этапов изалирован, во втором этапе ты не можешь подгрузить тему, а в третьем загрузить картинку.

Я примерно представлял, шо такое можно реализовать через стейт машину, что у пользователя на момент времени своё состояние, но может есть какое-то каноничное решение?
  • Вопрос задан
  • 37 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MEDIOFF
Python Developer
А чем FSM то не устраивает? Можете свой велосипед попробовать изобрести конечно, но боюсь больно на FSM похоже выйдет

P.S: Можете попробовать просто в редис или куда то еще записывать текущий этап пользователя и проверять его везде
Ответ написан
aiogram поставляется со своей FSM, python-telegram-bot тоже со своей FSM и хранилищем контекста. При написании нужно будет прикрепить к обработчиками значение состояния.
Вот пример для python-telegram-bot: https://github.com/python-telegram-bot/python-tele...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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