#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 місяця
Також варто подивитися