Опубликовано

Новинка: “Разработка Telegram-ботов на Python с нуля”

Разработка Telegram-ботов на Python с нуля

Рассмотрены практические подходы к созданию Telegram-ботов на языке Python с использованием фреймворка aiogram. Подробно описаны этапы разработки — от установки фреймворка и запуска бота до сложных сценариев взаимодействия с пользователем. Даны рекомендации по безопасному хранению токенов и других данных. Рассмотрены обработка сообщений, команд и аргументов, форматирование вывода, работа с, медиафайлами, кнопками и колбэками, структура проекта с применением роутеров, фильтров и мидлварей. Показано использование конечных автоматов (FSM) и сцен для пошаговых диалогов, работа в инлайн-режиме, отображение результатов, сбор статистики и подгрузка больших объемов данных. Приведены примеры интеграции платежей с Telegram Stars, проверки и возврата покупок, обработка ошибок и тестирование с помощью pytest.

Для разработчиков

Создавайте Telegram-боты на Python с помощью фреймворка aiogram!

Создавайте умные и полезные Telegram-боты на языке Python с помощью фреймворка aiogram! Эта книга проведет вас через все этапы разработки — от запуска первого бота до построения сложных диалоговых систем, интеграции платежей и тестирования.

Telegram-боты — это мощный инструмент автоматизации, взаимодействия с пользователями и даже ведения бизнеса. Благодаря фреймворку aiogram можно разрабатывать быстрые, надежные и гибкие боты, не вникая в избыточные детали кода на Python. Автор последовательно объясняет все ключевые аспекты: обработку текстовых сообщений и медиафайлов, создание кнопок разных типов, применение роутеров и мидлварей, реализацию сложных сценариев взаимодействия с пользователем, работу с инлайн-режимом и платежной системой Telegram Stars. Подробные примеры кода и практические советы помогут быстро перейти от теории к реальным проектам.

Эта книга — идеальный выбор для разработчиков, желающих освоить создание Telegram-ботов с нуля или вывести свои навыки на профессиональный уровень.

Вы узнаете, как:

  • установить и настроить aiogram и запустить свой первый бот;
  • безопасно хранить токены и другие чувствительные данные;
  • обрабатывать текст, команды и аргументы;
  • использовать кнопки, колбэки и фабрики колбэков;
  • структурировать проект, применять роутеры и фильтры;
  • писать и использовать мидлвари для обработки данных на лету;
  • реализовать конечные автоматы (FSM) и сцены для сложных диалогов;
  •  работать с инлайн-режимом и собирать статистику запросов;
  • подключить платежи с Telegram Stars;
  • обрабатывать ошибки и тестировать боты с помощью pytest.

Книгу “Разработка Telegram-ботов на Python с нуля” можно купить в нашем интенет-магазине.

Введение………………………………………………………………………………………………….. 7

Предыстория………………………………………………………………………………………………………………………………… 7

Чему обучит эта книга…………………………………………………………………………………………………………………. 7

Для кого эта книга……………………………………………………………………………………………………………………….. 8

Как пользоваться книгой…………………………………………………………………………………………………………….. 8

Благодарности……………………………………………………………………………………………………………………………… 9

Глава 1. Знакомство с aiogram……………………………………………………………….. 11

Установка aiogram…………………………………………………………………………………………………………………….. 15

Запуск бота………………………………………………………………………………………………………………………………… 20

Как скрыть чувствительные данные (токен) из кода………………………………………………………………. 21

Терминология…………………………………………………………………………………………………………………………….. 21

Глава 2. Работа с текстовыми сообщениями………………………………………….. 23

Что такое хэндлеры…………………………………………………………………………………………………………………… 23

Синтаксический сахар………………………………………………………………………………………………………………. 24

Форматированный вывод………………………………………………………………………………………………………….. 25

Экранирование ввода………………………………………………………………………………………………………………… 27

Сохранение форматирования…………………………………………………………………………………………………… 30

Работа с entities………………………………………………………………………………………………………………………….. 31

Команды и их аргументы………………………………………………………………………………………………………….. 32

Диплинки…………………………………………………………………………………………………………………………………….. 35

Предпросмотр ссылок……………………………………………………………………………………………………………….. 36

Глава 3. Работа с медиафайлами……………………………………………………………. 39

Отправка файлов……………………………………………………………………………………………………………………….. 39

Скачивание файлов……………………………………………………………………………………………………………………. 41

Альбомы……………………………………………………………………………………………………………………………………… 42

Сервисные (служебные) сообщения…………………………………………………………………………………………. 44

Бонус: прячем ссылку в тексте…………………………………………………………………………………………………. 45

Глава 4. Кнопки…………………………………………………………………………………….. 47

Обычные (реплай) кнопки…………………………………………………………………………………………………………. 47

Кнопки как шаблоны…………………………………………………………………………………………………………. 47

Keyboard Builder…………………………………………………………………………………………………………………. 50

Специальные обычные кнопки…………………………………………………………………………………………. 51

Инлайн-кнопки…………………………………………………………………………………………………………………………… 54

URL-кнопки…………………………………………………………………………………………………………………………. 54

Колбэки……………………………………………………………………………………………………………………………….. 55

Фабрика колбэков………………………………………………………………………………………………………………. 60

Автоответ на колбэки………………………………………………………………………………………………………… 64

Глава 5. Роутеры, многофайловость и структура бота……………………………. 67

Роутеры………………………………………………………………………………………………………………………………………. 67

Проброс данных в диспетчер……………………………………………………………………………………………………. 72

Итог……………………………………………………………………………………………………………………………………………… 75

Глава 6. Фильтры…………………………………………………………………………………… 77

Зачем нужны фильтры………………………………………………………………………………………………………………. 77

Фильтры как классы………………………………………………………………………………………………………………….. 79

Магические фильтры…………………………………………………………………………………………………………………. 84

MagicData…………………………………………………………………………………………………………………………………… 87

Глава 7. Мидлвари…………………………………………………………………………………. 89

Зачем нужны мидлвари…………………………………………………………………………………………………………….. 89

Виды и структура мидлварей…………………………………………………………………………………………………… 89

Примеры мидлварей………………………………………………………………………………………………………………….. 92

Передача аргументов в мидлварь…………………………………………………………………………………….. 92

Передача данных из мидлвари…………………………………………………………………………………………. 93

Никаких колбэков по выходным!……………………………………………………………………………………… 95

Флаги…………………………………………………………………………………………………………………………………………… 97

Глава 8. Особые апдейты…………………………………………………………………….. 101

Введение…………………………………………………………………………………………………………………………………… 101

Объект ChatMemberUpdated…………………………………………………………………………………………………… 102

Апдейт my_chat_member………………………………………………………………………………………………………… 102

Баны/разбаны в ЛС………………………………………………………………………………………………………….. 102

Добавление в группу……………………………………………………………………………………………………….. 107

Апдейт chat_member……………………………………………………………………………………………………………….. 111

Актуализация списка админов в группах………………………………………………………………………. 112

Глава 9. Конечные автоматы (FSM)……………………………………………………… 117

Теория……………………………………………………………………………………………………………………………………….. 117

Практика…………………………………………………………………………………………………………………………………… 118

Создание шагов………………………………………………………………………………………………………………… 118

Обработка шага 1…………………………………………………………………………………………………………….. 119

Обработка шага 2…………………………………………………………………………………………………………….. 121

Общие команды………………………………………………………………………………………………………………… 122

Различные стратегии FSM………………………………………………………………………………………………. 123

Глава 10. Сцены…………………………………………………………………………………… 125

Что такое сцены……………………………………………………………………………………………………………………….. 125

Создание простой сцены…………………………………………………………………………………………………………. 127

Переход между сценами………………………………………………………………………………………………………….. 131

Передача данных между сценами………………………………………………………………………………………….. 134

Глава 11. Инлайн-режим………………………………………………………………………. 137

Теория……………………………………………………………………………………………………………………………………….. 137

Зачем нужен инлайн-режим……………………………………………………………………………………………. 137

Формат входящих запросов……………………………………………………………………………………………. 138

Формат исходящих ответов…………………………………………………………………………………………….. 138

Практика…………………………………………………………………………………………………………………………………… 141

Система хранения……………………………………………………………………………………………………………. 141

Команды в боте………………………………………………………………………………………………………………… 143

Сохранение данных…………………………………………………………………………………………………………. 144

Текст…………………………………………………………………………………………………………………………. 144

Изображения……………………………………………………………………………………………………………. 148

Отображение данных………………………………………………………………………………………………………. 149

Текст…………………………………………………………………………………………………………………………. 149

Изображения……………………………………………………………………………………………………………. 151

Удаление данных…………………………………………………………………………………………………………….. 152

Switch туда и обратно……………………………………………………………………………………………………… 155

Дополнительные материалы………………………………………………………………………………………………….. 156

Подгрузка результатов……………………………………………………………………………………………………. 156

Сбор статистики………………………………………………………………………………………………………………. 158

Глава 12. Платежи с Stars…………………………………………………………………….. 161

План работ……………………………………………………………………………………………………………………………….. 161

Технологии……………………………………………………………………………………………………………………………….. 161

Локализация…………………………………………………………………………………………………………………………….. 162

Логи…………………………………………………………………………………………………………………………………………… 164

Пишем код. Команда /start……………………………………………………………………………………………………… 166

Команды /donate……………………………………………………………………………………………………………………… 167

Проверка перед оплатой…………………………………………………………………………………………………………. 171

После оплаты…………………………………………………………………………………………………………………………… 172

Возвраты покупок……………………………………………………………………………………………………………………. 173

Глава 13. Обработка ошибок……………………………………………………………….. 177

Какие бывают ошибки и зачем их обрабатывать…………………………………………………………………. 177

Обработка внутри хэндлеров…………………………………………………………………………………………………. 178

Отдельные обработчики ошибок……………………………………………………………………………………………. 182

Глава 14. Тестирование ботов………………………………………………………………. 185

Общая информация и подготовка…………………………………………………………………………………………… 185

Для чего нужно тестирование…………………………………………………………………………………………. 185

Что, чем и как……………………………………………………………………………………………………………………. 186

Структура файлов и каталогов………………………………………………………………………………………………. 186

Модуль bot……………………………………………………………………………………………………………………….. 187

Модуль tests……………………………………………………………………………………………………………………… 189

Запуск кода и тестов……………………………………………………………………………………………………………….. 193

Запуск кода и тестов в PyCharm…………………………………………………………………………………….. 193

Запуск кода и тестов в Visual Studio Code (VSCode)…………………………………………………….. 196

Тестирование хэндлеров…………………………………………………………………………………………………………. 198

Простой пример……………………………………………………………………………………………………………….. 198

Параметризация тестов…………………………………………………………………………………………………… 200

Тестирование объектов разных типов……………………………………………………………………………. 204

Подмена функций (манкипатчинг)………………………………………………………………………………….. 207

Ожидание ошибок……………………………………………………………………………………………………………. 209

Тестирование FSM…………………………………………………………………………………………………………………… 212

Тестирование всей цепочки…………………………………………………………………………………………….. 212

Тестирование отдельных этапов FSM……………………………………………………………………………. 216

Предметный указатель…………………………………………………………………………. 221

Добавить комментарий