1. Введение в aiogram 3.x и настройка окружения
Введение в aiogram 3.x и настройка окружения
Что такое aiogram и почему версия 3.x
aiogram — это асинхронный фреймворк на Python для создания Telegram-ботов, работающий поверх Telegram Bot API.
В версии aiogram 3.x библиотека получила более строгую и предсказуемую архитектуру, удобную маршрутизацию хендлеров через Router, а также более явные зависимости и типизацию. В этом курсе мы будем строить бота так, чтобы код был:
Как работает Telegram-бот на высоком уровне
Когда пользователь пишет боту, Telegram отправляет вашему приложению обновление (update). Вариантов доставки два:
В начале курса мы используем long polling, потому что это проще для локальной разработки.
!Схема показывает путь сообщения от пользователя до хендлера aiogram
Требования к окружению
Перед началом убедитесь, что у вас есть:
pipОфициальные источники:
Создаём бота в Telegram и получаем токен
Чтобы управлять ботом, вам нужен токен.
/newbot .bot).123456:ABC-DEF....Важно: токен — это секрет. Не публикуйте его в репозитории и не вставляйте в скриншоты.
Настраиваем проект: виртуальное окружение и зависимости
Создаём папку проекта
Пример (имена можно менять):
Создаём виртуальное окружение
Виртуальное окружение изолирует зависимости проекта.
Для Windows (PowerShell):
Для macOS/Linux:
Устанавливаем aiogram
pip.aiogram версии 3.x.Храним токен безопасно: переменные окружения и .env
Хорошая практика — не хранить токен в коде. Вместо этого используем файл .env и переменные окружения.
.env..env в корне проекта.Если команда touch недоступна (Windows), просто создайте файл вручную.
.env строку (подставьте свой токен):.env в .gitignore, если используете Git.Пример содержимого .gitignore:
Минимальная структура проекта
Сразу договоримся о базовой структуре, чтобы дальше расширять её без хаоса.
Рекомендуемый старт:
bot/ — пакет приложенияbot/__init__.py — делает папку пакетомbot/config.py — загрузка настроекbot/main.py — точка входаСоздайте файлы:
Пишем первый минимальный бот на aiogram 3.x
Файл bot/config.py
Здесь загружаем токен из .env.
Что здесь происходит:
load_dotenv() читает файл .env и добавляет значения в переменные окружения процессаos.getenv("BOT_TOKEN") получает токенФайл bot/main.py
Запустим бота в режиме long polling и добавим один хендлер на команду /start.
Обратите внимание на ключевые элементы:
Bot(token=...) — объект для вызовов Telegram Bot APIDispatcher() — диспетчер, который получает обновления и передаёт их роутерам/хендлерам@dp.message(...) — регистрация хендлера сообщений по фильтруCommandStart() — фильтр на команду /startdp.start_polling(bot) — запуск long pollingЗапуск и проверка
/start.Если всё настроено верно, бот ответит приветственным сообщением.
Типичные ошибки и как их быстро исправить
BOT_TOKEN не задан.env и его расположение (в корне проекта).Unauthorized / бот не отвечаетModuleNotFoundError: aiogram.venv и повторите pip install aiogram.python и pip относятся к одному интерпретатору.python -c "import sys; print(sys.executable)".Что будет дальше в курсе
В следующей части мы начнём строить правильную структуру проекта: вынесем хендлеры в отдельные модули, познакомимся с Router, научимся подключать несколько роутеров и подготовим основу для клавиатур и дальнейшей логики бота.