Введение: Почему aiogram 3 — это стандарт разработки Telegram-ботов
В июне 2026 года Telegram Bot Development — это не просто хобби, а мощный инструмент для бизнеса и автоматизации. Если вы хотите создавать надёжных, масштабируемых ботов, aiogram 3 — ваш выбор. Эта библиотека предлагает асинхронную архитектуру, гибкие хендлеры и продвинутые возможности, такие как машина состояний (FSM) и интеграция с Telegram Web Apps. На платформе ASI Biont мы объединили обучение с AI и практические кейсы, чтобы вы освоили разработку ботов с нуля до продакшена.
В этой статье разберём ключевые аспекты: хендлеры, клавиатуры, middleware и фильтры, а также покажем, как применить их в реальных проектах. Готовы погрузиться? Поехали!
Основы aiogram 3: Хендлеры и их типы
Хендлеры — это сердце любого бота. Они обрабатывают команды, сообщения, коллбэки и даже платежи. В aiogram 3 используется декораторный подход, что делает код чистым и читаемым.
Основные типы хендлеров:
- MessageHandler — для текстовых сообщений, команд и медиа.
- CallbackQueryHandler — для обработки нажатий на инлайн-кнопки.
- PreCheckoutQueryHandler — для работы с платежами через Telegram Stars.
- MyChatMemberHandler — для администрирования (например, когда бота добавляют в группу).
Пример простого хендлера:
from aiogram import Router, types
from aiogram.filters import Command
router = Router()
@router.message(Command("start"))
async def cmd_start(message: types.Message):
await message.answer("Привет! Я бот, созданный на aiogram 3.")
Машина состояний (FSM): Управление диалогами
FSM (Finite State Machine) — это способ организовать многошаговые сценарии, такие как регистрация или оформление заказа. В aiogram 3 FSM реализован через State и StatesGroup.
Пример сценария:
- Пользователь вводит имя.
- Бот запрашивает email.
- Данные сохраняются в базу данных (БД).
Код:
from aiogram.fsm.state import State, StatesGroup
class Form(StatesGroup):
name = State()
email = State()
@router.message(Form.name)
async def process_name(message: types.Message, state: FSMContext):
await state.update_data(name=message.text)
await state.set_state(Form.email)
await message.answer("Введите ваш email:")
FSM идеально подходит для Telegram Bot Development в бизнесе: от сбора лидов до кастомизации услуг.
Клавиатуры: Инлайн и Reply
Клавиатуры — это интерфейс взаимодействия с пользователем. В aiogram 3 поддерживаются два типа:
- ReplyKeyboardMarkup — стандартные кнопки под полем ввода.
- InlineKeyboardMarkup — кнопки внутри сообщения (для callback’ов и ссылок).
Таблица сравнения:
| Тип | Применение | Пример использования |
|---|---|---|
| Reply | Простые команды | Кнопки «Меню», «Контакты» |
| Inline | Действия внутри чата | Кнопки «Купить», «Подробнее» |
Пример инлайн-клавиатуры:
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
kb = InlineKeyboardMarkup(inline_keyboard=[
[InlineKeyboardButton(text="Купить", callback_data="buy")],
[InlineKeyboardButton(text="Помощь", callback_data="help")]
])
Middleware и фильтры: Гибкая логика
Middleware (промежуточное ПО) позволяет выполнять код до или после хендлера. Например, логировать запросы или проверять подписку на канал.
Пример middleware для проверки доступа:
from aiogram import BaseMiddleware
class AccessMiddleware(BaseMiddleware):
async def __call__(self, handler, event, data):
user_id = event.from_user.id
if user_id in ALLOWED_USERS:
return await handler(event, data)
await event.answer("Доступ запрещен.")
Фильтры (aiogram.filters) — это быстрые проверки условий. Например, Command("start") или ChatTypeFilter(chat_type="private"). Комбинируйте их для точной маршрутизации.
Интеграция: Платежи, Telegram Web Apps и БД
Современный Telegram-бот не обходится без внешних сервисов. Рассмотрим три ключевых направления:
1. Платежи через Telegram Stars
Боты могут принимать оплату напрямую. Для этого используйте PreCheckoutQueryHandler и Message.successful_payment. Это удобно для продажи цифровых товаров.
2. Telegram Web Apps
Встраивайте веб-приложения в интерфейс бота. Например, форма заказа или калькулятор. Web App передаёт данные обратно боту через WebAppData.
3. Базы данных (БД)
Для хранения пользователей и состояний используйте SQLite, PostgreSQL или Redis. В aiogram 3 легко интегрировать ORM (например, SQLAlchemy).
Пример сохранения данных:
async def save_user(user_id: int, name: str):
async with async_session() as session:
session.add(User(id=user_id, name=name))
await session.commit()
Практика: Создание бота для бизнеса
Допустим, вы разрабатываете бота для интернет-магазина. Вот типичный сценарий:
1. Пользователь нажимает «Каталог» (хендлер с клавиатурой).
2. Бот показывает товары через инлайн-кнопки (callback-хендлер).
3. Пользователь оформляет заказ (FSM с вводом адреса).
4. Оплата через Telegram Stars (платёжный хендлер).
5. Админ получает уведомление (middleware для логирования).
Этот подход масштабируется от простых чат-ботов до сложных ERP-систем.
Вывод
Aiogram 3 — это зрелая экосистема для Telegram Bot Development. Освоив хендлеры, FSM, клавиатуры и middleware, вы сможете создавать ботов любого уровня сложности. На курсе ASI Biont мы углубляемся в каждую тему: от основ до интеграции с платежами и веб-приложениями. Обучение с AI помогает ускорить процесс: нейросеть генерирует примеры и подсказывает оптимальные решения.
Готовы начать? Пройдите курс «Telegram Bot Development» на ASI Biont и создайте своего первого бота уже сегодня!
Комментарии