Telegram-боты до сих пор остаются одним из самых удобных и востребованных проектов для разработчиков. Они помогают автоматизировать рутину, делать полезные сервисы, управлять устройствами или просто развлекать людей. И самое приятное: написать рабочего бота можно буквально за вечер.
Python остаётся лучшим выбором для ботов благодаря простоте и мощным библиотекам. Сейчас большинство выбирает aiogram 3.x - это современный и очень быстрый асинхронный фреймворк.
Пошаговый гайд
1 Подготовка
Сначала создайте бота у @BotFather в Telegram. Получите токен - это ваш главный ключ.
Создайте проект:
bash
mkdir my_telegram_bot
cd my_telegram_bot
uv venv
uv pip install aiogram[fast] python-dotenv
2 Базовая структура бота
Создайте файл bot.py:
python
import asyncio
from aiogram import Bot, Dispatcher
from aiogram.filters import Command
from aiogram.types import Message
from dotenv import load_dotenv
import os
load_dotenv()
TOKEN = os.getenv("BOT_TOKEN")
bot = Bot(token=TOKEN)
dp = Dispatcher()
@dp.message(Command("start"))
async def start(message: Message):
await message.answer(
"Привет! Я бот, написанный на Python.\n"
"Напиши /help, чтобы увидеть, что я умею."
)
@dp.message(Command("help"))
async def help_command(message: Message):
await message.answer("Пока доступны
команды: /start и /help")
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
3 Работа с .env
Создайте файл .env и добавьте туда:
BOT_TOKEN=123456:ABC-DEF...
4 Полезные возможности, которые стоит добавить сразу
. Обработка любых текстовых сообщений:
python
@dp.message()
async def echo(message: Message):
await message.answer(f"Вы написали:
{message.text}")
. Кнопки (Inline и Reply):
. Работа с базой данных (SQLite или PostgreSQL)
. Отправка фото, документов, локаций
. Планировщик задач (aiogram + APScheduler)
. Вебхуки (для продакшена вместо polling)
5 Рекомендации по хорошему боту
. Всегда делайте обработку ошибок
. Используйте Finite State Machine (FSM) для многошаговых диалогов
. Добавьте логирование
. Для продакшена запускайте через systemd или Docker
. Не храните токен в коде
Примеры актуальных ботов, которые можно сделать:
. Бот для мониторинга серверов и домашнего оборудования
. Умный помощник для заметок и задач
. Бот, который управляет вашим homelab
. Парсер цен или уведомления о чём-то важном
. Личный помощник по разработке (напоминания, сниппеты)
Telegram API сейчас очень удобный, а aiogram позволяет писать чистый и масштабируемый код. Даже если вы только начинаете с Python, такой проект отлично прокачивает навыки асинхронного программирования, работы с API и архитектурой приложений.
Что дальше?
После первого простого бота попробуйте добавить базу данных и состояния. Это уже совсем другой уровень.
А вы писали Telegram-ботов?
На чём делали и для каких задач? Расскажите в комментариях — будет интересно почитать и, возможно, взять идеи для следующих гайдов.