Учебный разбор пошаговых диалогов в телеграм-ботах: как бот помнит, о чём спрашивал, и куда складывает введённые ответы.
Разбор одной темы: как в телеграм-боте сделать разговор из нескольких шагов.
Задача выглядит простой, пока не окажется, что бот не помнит, о чём спрашивал минуту назад: каждое сообщение приходит само по себе. Решение — конечный автомат: у каждого пользователя есть текущее состояние, обработчик срабатывает только в нужном, а введённые ответы копятся до конца формы.
В репозитории собраны маршрутизаторы, клавиатуры и заготовка структуры проекта, на которой удобно начинать своего бота.
Отсюда выросла форма бронирования в боте для ресторана — там тот же приём применён к настоящей задаче.
Фрагмент из настоящего кода проекта — чтобы было видно, что внутри.
from aiogram import Bot, Dispatcherfrom app.handlers.start import router as start_routerfrom app.handlers.custom import router as custom_routerload_dotenv()TOKEN = getenv("BOT_TOKEN") or ""setup_logger()logger = logging.getLogger(__name__)dp = Dispatcher()dp.include_routers(start_router, custom_router)async def main(): bot = Bot(token=TOKEN) await dp.start_polling(bot)if __name__ == "__main__": asyncio.run(main())Заявка на проект
Заполните форму — обсудим детали и сроки.
IT² Hub — сайт студии
