
Полная версия
Создаём телеграм-бота на python

Никита Войтов
Создаём телеграм-бота на python
Об авторе
Меня зовут Никита Войтов. Я – backend-разработчик с трёхлетним опытом коммерческой работы. За это время я участвовал в создании и поддержке различных веб-сервисов, REST API и, конечно, Telegram-ботов для бизнеса и развлечений.
Мой основной стек – Python, FastAPI, PostgreSQL, Docker, а также современные инструменты для асинхронного программирования. Я активно использую aiogram для разработки ботов, потому что считаю его лучшим выбором для быстрого и удобного создания сложных Telegram-ботов.
В этой книге я делюсь своим опытом, практическими советами и примерами кода, чтобы помочь вам быстро освоить aiogram и начать создавать собственных ботов. Если у вас возникнут вопросы или предложения, вы всегда можете связаться со мной через Telegram: @voitov23 или по почте: pochta5343@mail.ru.
Глава 1. Введение
Что такое aiogram?
aiogram – это современный асинхронный Python-фреймворк для создания Telegram-ботов. Он построен на основе asyncio и позволяет эффективно обрабатывать множество одновременных запросов, что особенно важно для популярных и быстрорастущих ботов.
Почему стоит выбрать aiogram?
Асинхронность: aiogram использует возможности asyncio, что делает бота быстрым и отзывчивым даже при большом количестве пользователей.
Простота: Чистый и лаконичный синтаксис, который легко читать и поддерживать.
Гибкость: aiogram поддерживает все возможности Telegram Bot API, включая работу с медиа, inline-кнопками, платежами и многим другим.
Активное сообщество: aiogram постоянно развивается, а сообщество предоставляет множество примеров и готовых решений.
Для кого эта книга?
Эта книга предназначена для начинающих и продолжающих разработчиков, которые хотят быстро и эффективно научиться создавать Telegram-ботов на Python. Предполагается, что у читателя есть базовые знания Python и желание изучать новые технологии.
Глава 2. Установка и настройка
2.1. Установка Python
Перед началом убедитесь, что у вас установлен Python версии 3.8 или выше. Скачать актуальную версию можно с официального сайта Python.
Проверьте версию Python в терминале:
bash
python –version
или
bash
python3 –version
2.2. Установка aiogram
Установить aiogram очень просто с помощью pip:
bash
pip install aiogram
Рекомендуется использовать виртуальное окружение для каждого проекта. Например:
bash
python -m venv venv
source venv/bin/activate # Для Linux/Mac
venv\Scripts\activate # Для Windows
pip install aiogram
2.3. Получение токена у BotFather
Откройте Telegram и найдите пользователя @BotFather.
Отправьте команду /newbot и следуйте инструкциям: придумайте имя и username для бота.
После создания BotFather пришлёт вам токен – длинную строку символов. Сохраните его, он понадобится для запуска бота.
Глава 3. Первая программа: Эхо-бот
3.1. Создание проекта
Создайте новую папку для своего проекта, например, my_aiogram_bot.
Перейдите в неё и (по желанию) создайте виртуальное окружение:
bash
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
Установите aiogram (если ещё не установлен):
bash
pip install aiogram
3.2. Создание файла бота
Создайте файл, например, bot.py и откройте его в любимом редакторе кода.
3.3. Минимальный эхо-бот на aiogram
Вставьте следующий код в файл bot.py. Не забудьте заменить 'ВАШ_ТОКЕН_ЗДЕСЬ' на токен, полученный от BotFather.
python
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
API_TOKEN = 'ВАШ_ТОКЕН_ЗДЕСЬ'
# Создаём объекты бота и диспетчера
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
# Хэндлер для всех входящих сообщений
@dp.message_handler()
async def echo_message(message: types.Message):
await message.answer(message.text)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
3.4. Запуск бота
В терминале bash запустите файл:
python bot.py
Если всё сделано правильно, бот начнёт работать. Теперь напишите ему любое сообщение в Telegram – он должен ответить вам тем же текстом.
3.5. Как это работает?
Bot – объект для общения с Telegram API.
Dispatcher – объект, который получает и распределяет входящие сообщения по хэндлерам.
@dp.message_handler() – декоратор, который регистрирует функцию для обработки всех сообщений.
executor.start_polling() – запускает цикл обработки новых сообщений (polling).
Поздравляю!
Вы только что создали своего первого Telegram-бота на aiogram. В следующих главах мы разберём, как обрабатывать команды, использовать кнопки, хранить данные и многое другое.
Глава 4. Обработка сообщений и команд
4.1. Обработка команд
В Telegram-ботах команды – это специальные сообщения, которые начинаются с символа / (например, /start, /help). Aiogram позволяет легко обрабатывать такие команды с помощью фильтров.
Пример: обработка команды /start
Добавьте в ваш bot.py следующий код:
python
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
API_TOKEN = 'ВАШ_ТОКЕН_ЗДЕСЬ'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.reply("Привет! Я твой первый бот на aiogram.")
@dp.message_handler(commands=['help'])
async def send_help(message: types.Message):
await message.reply("Вот что я умею:\n/start – начать\n/help – помощь\nНапиши мне что-нибудь, и я повторю это!")
@dp.message_handler()
async def echo_message(message: types.Message):
await message.answer(message.text)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Теперь бот будет отвечать на команды /start и /help специальными сообщениями, а на всё остальное – повторять текст.
4.2. Фильтры сообщений
Aiogram позволяет задавать фильтры для хэндлеров – это условия, при которых хэндлер будет срабатывать.
Пример: фильтр по типу сообщения
python
@dp.message_handler(content_types=['photo'])
async def handle_photo(message: types.Message):
await message.reply("Спасибо за фото!")
@dp.message_handler(lambda message: 'привет' in message.text.lower())
async def handle_hello(message: types.Message):
await message.reply("И тебе привет!")
Первый хэндлер сработает, если пользователь отправит фото.
Второй – если в тексте сообщения есть слово "привет".
4.3. Обработка нескольких условий
Конец ознакомительного фрагмента.
Текст предоставлен ООО «Литрес».
Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.
Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.