#4 – Машина состояний (FSM)
Видеоурок
Машина состояний (FSM) – один из самых важных инструментов при создании Telegram-ботов. Она позволяет строить многошаговые сценарии, в которых бот «понимает», на каком шаге находится пользователь и какие данные от него ожидаются. Без FSM бот не может отличить обычное сообщение от ответа на конкретный вопрос анкеты или формы.
В aiogram 3.x FSM реализована через три ключевых элемента: StatesGroup, State и FSMContext.
С помощью StatesGroup создаётся набор шагов, например: имя, возраст, email. Каждое поле внутри группы — это отдельное состояние, в котором бот ждёт конкретный тип ввода.
Работа со сценарием строится очень просто:
- Пользователь вводит команду, например
/form. - Бот устанавливает состояние (
await state.set_state(...)) и задаёт вопрос. - Пользователь отвечает, а бот сохраняет данные в контекст (
await state.update_data(...)). - Затем бот переводит пользователя к следующему состоянию.
- В финале формирует результат и очищает состояние (
await state.clear()).
FSMContext играет роль временного хранилища — туда можно записывать всё, что ввёл пользователь, а в конце получить полную анкету.
Материалы для курса
Чтобы скачивать материалы к видеокурсам необходимо оформить подписку на сайт
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть