Читать книгу: «Создаём телеграм-бота на python»

Шрифт:

Об авторе

Меня зовут Никита Войтов. Я – backend-разработчик с трёхлетним опытом коммерческой работы. За это время я участвовал в создании и поддержке различных веб-сервисов, REST API и, конечно, Telegram-ботов для бизнеса и развлечений.

Мой основной стек – Python, FastAPI, PostgreSQL, Docker, а также современные инструменты для асинхронного программирования. Я активно использую aiogram для разработки ботов, потому что считаю его лучшим выбором для быстрого и удобного создания сложных Telegram-ботов.

В этой книге я делюсь своим опытом, практическими советами и примерами кода, чтобы помочь вам быстро освоить aiogram и начать создавать собственных ботов.

Глава 1. Введение в Telegram Bot API и Aiogram 3.x

Телеграм-боты – это программы, которые взаимодействуют с пользователями через популярный мессенджер Telegram. Они способны выполнять различные задачи: от отправки уведомлений и новостей до управления умным домом и проведения игр. В этой книге мы создадим несколько таких ботов на языке программирования Python, используя современную библиотеку Aiogram версии 3.x.

Что такое Telegram Bot API?

Telegram предоставил публичный API, который позволяет создавать ботов – автоматизированные аккаунты с функционалом, расширяющим возможности мессенджера. Через API боты получают сообщения пользователей, могут отвечать, обрабатывать команды, отправлять медиа и так далее.

Основные принципы работы бота:

Получение обновлений (updates) от Telegram: поллингом или вебхуками.

Обработка этих обновлений с помощью программной логики.

Отправка ответов пользователю через API.

Почему Aiogram?

Aiogram – это асинхронная библиотека для создания Telegram-ботов на Python. Вот её преимущества:

Использует современный синтаксис Python с async/await.

Поддерживает все возможности Telegram Bot API.

Имеет понятную архитектуру с диспетчером (Dispatcher), обработчиками (Handlers) и фильтрами (Filters).

Активно развивается и поддерживается сообществом.

Позволяет легко масштабировать ботов и интегрировать с другими сервисами.

Версия 3.x стала крупным обновлением, где изменился API и улучшилась производительность. В этой книге мы используем последнюю стабильную версию Aiogram 3.13 (на момент написания).

Установка и настройка

Для начала работы нам понадобится следующее:

Python 3.10+ (для полной поддержки новых возможностей синтаксиса)

Телеграм-бот и токен от BotFather (в Telegram найдите аккаунт @BotFather и создайте нового бота, получите токен)

Установим Aiogram:

bashpython -m pip install aiogram==3.13

Создадим минимальный скрипт бота bot.py:

pythonfrom aiogram import Bot, Dispatcher, types from aiogram.filters import Command from aiogram.types import Message import asyncio TOKEN = "ВАШ_ТОКЕН_ЗДЕСЬ" bot = Bot(token=TOKEN) dp = Dispatcher() @dp.message(Command("start")) async def cmd_start(message: Message): await message.answer("Привет! Я – ваш первый бот на Aiogram 3.x.") async def main(): await dp.start_polling(bot) if __name__ == "__main__": asyncio.run(main())

Запустите скрипт:

bashpython bot.py

Теперь в Telegram отправьте команду /start вашему боту и получите приветственное сообщение.

Глава 2. Архитектура Aiogram 3.x: Dispatcher, Handlers и Filters

В этой главе подробно рассмотрим, как устроена библиотека Aiogram 3.x, и какие ключевые компоненты используются для построения ботов. Понимание архитектуры поможет создавать более гибкие и масштабируемые приложения.

Dispatcher – центральный регулятор событий

Dispatcher (диспетчер) – это основа управления событиями в Aiogram. Его задача – получать обновления от Telegram и направлять их к соответствующим обработчикам (Handlers).

Основные функции Dispatcher:

Регистрация обработчиков сообщений, команд, коллбеков и других типов обновлений.

Обработка входящих обновлений и вызов соответствующих функций.

Поддержка middleware для дополнительной обработки запросов.

В Aiogram 3.x создаётся экземпляр Dispatcher без передачи объекта Bot, он передаётся отдельно при запуске.

pythonfrom aiogram import Dispatcher dp = Dispatcher()

Handlers – обработчики событий

Обработчики (Handlers) – это асинхронные функции, которые вызываются при наступлении определённого события (получении сообщения, комманды, callback query и др.).

Пример обработчика для команды /start:

pythonfrom aiogram.filters import Command from aiogram.types import Message @dp.message(Command("start")) async def cmd_start(message: Message): await message.answer("Привет от обработчика команды /start!")

Aiogram позволяет создавать обработчики для разных типов событий – сообщений, коллбеков, inline-запросов и т. д.

Filters – фильтры для выбора обновлений

Фильтры – это специальные классы или функции, которые помогают выбирать нужные обновления, например, сообщения только с определённой командой, от конкретных пользователей или с определённым текстом.

Пример фильтра команды:

python@dp.message(Command("help")) async def help_handler(message: Message): await message.answer("Вот список доступных команд…")

Также можно создавать свои собственные фильтры для более сложных условий.

Пример: несколько обработчиков и фильтр по тексту

pythonfrom aiogram.filters import Text @dp.message(Command("start")) async def start_handler(message: Message): await message.answer("Добро пожаловать!") @dp.message(Text("Привет")) async def greet_handler(message: Message): await message.answer("Привет! Как дела?")

Если пользователь отправит /start, будет вызван первый обработчик, а если напишет текст "Привет" – второй.

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе
Возрастное ограничение:
16+
Дата выхода на Литрес:
06 мая 2025
Дата написания:
2025
Объем:
19 стр. 1 иллюстрация
Правообладатель:
Автор
Формат скачивания: