Читать бесплатно книгу «Создаём телеграм-бота на python» Никиты Алексеевича Войтова полностью онлайн — MyBook
cover

Никита Войтов
Создаём телеграм-бота на 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, будет вызван первый обработчик, а если напишет текст "Привет" – второй.

Запуск диспетчера

После регистрации всех обработчиков, диспетчер запускается командой:

pythonimport asyncio async def main(): await dp.start_polling(bot) if __name__ == "__main__": asyncio.run(main())

Это запускает поллинг Telegram для получения обновлений.

В этой главе рассмотрены базовые архитектурные элементы Aiogram 3.x – Dispatcher, Handlers и Filters, которые составляют основу любого бота. В следующей главе перейдём к работе с клавиатурами и inline-кнопками, чтобы сделать бота интерактивным.


Глава 3. Клавиатуры и Inline-кнопки в Aiogram 3.x

Чтобы сделать бот более удобным и интерактивным, используют клавиатуры – специальные наборы кнопок, которые пользователь видит прямо в интерфейсе Telegram. В Aiogram 3.x имеется два основных типа клавиатур: обычные ReplyKeyboard и InlineKeyboard.

ReplyKeyboard – клавиатура для быстрого ответа

ReplyKeyboard отображается пользователю под полем ввода сообщений и содержит кнопки с текстом. При нажатии на кнопку её текст отправляется как сообщение боту.

Как создать простую клавиатуру:

pythonfrom aiogram.types import ReplyKeyboardMarkup, KeyboardButton keyboard = ReplyKeyboardMarkup( keyboard=[ [KeyboardButton(text="Привет"), KeyboardButton(text="Помощь")], [KeyboardButton(text="Контакт", request_contact=True)], ], resize_keyboard=True, ) @dp.message(Command("start")) async def start(message: Message): await message.answer("Выберите действие:", reply_markup=keyboard)

resize_keyboard=True уменьшает размер клавиатуры.

Кнопка с request_contact=True запрашивает у пользователя контакт.

Пользователь нажимает кнопку, и её текст приходит боту как обычное сообщение.

InlineKeyboard – клавиатура с кнопками посылающими callback_query

InlineKeyboard отображается прямо в сообщении и кнопки не посылают текста, а отправляют callback-ответы, которые бот обрабатывает отдельно. Это позволяет создавать более сложные сценарии взаимодействия.

Бесплатно

0 
(0 оценок)

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

Установите приложение, чтобы читать эту книгу бесплатно

На этой странице вы можете прочитать онлайн книгу «Создаём телеграм-бота на python», автора Никиты Алексеевича Войтова. Данная книга имеет возрастное ограничение 16+, относится к жанру «Программирование». Произведение затрагивает такие темы, как «обучение программированию», «языки программирования». Книга «Создаём телеграм-бота на python» была написана в 2025 и издана в 2025 году. Приятного чтения!