🤖 Твой первый Telegram-бот на aiogram Мы уже выяснили, что асинхронность это круто.
Мы уже выяснили, что асинхронность это круто. А где она используется чаще всего? Конечно, в Telegram-ботах!
Сегодня напишем "Эхо-бота" - это как "Hello World" в мире ботов. Он будет просто повторять всё, что мы ему напишем.
🛠 Подготовка:
1. Идем к «отцу всех ботов» - @BotFather.
2. Пишем /newbot, даем имя и юзернейм.
3. Получаем API TOKEN (длинная строка символов).
4. Устанавливаем библиотеку: pip install aiogram
💻 Код (всего 20 строк):
import asyncio
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart
# Вставь сюда токен от BotFather
TOKEN = "ВАШ_ТОКЕН_ЗДЕСЬ"
# Включаем логирование, чтобы видеть ошибки в консоли
logging.basicConfig(level=logging.INFO)
# Создаем объекты бота и диспетчера
bot = Bot(token=TOKEN)
dp = Dispatcher()
# 1. Обработчик команды /start
@dp.message(CommandStart())
async def cmd_start(message: types.Message):
await message.answer("Привет! Я твой первый бот на aiogram 🚀")
# 2. Обработчик любого текста (Эхо)
@dp.message()
async def echo_handler(message: types.Message):
# Метод .answer() отправляет ответ в тот же чат
await message.answer(f"Ты написал: {message.text}")
# Запуск процесса опроса (polling)
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
🧩 Разбор магии:
🟢 Dispatcher (dp) - это мозг бота. Он получает сообщения от Telegram и решает, какой функции их передать.
🟢 @dp.message(...) - это декораторы. Они "фильтруют" сообщения.
🟢 await message.answer(...) - асинхронная отправка сообщения. Пока бот отправляет ответ тебе, он может параллельно обрабатывать сообщения от других пользователей!
Скопируй, вставь токен и запусти. Поздравляю, ты только что создал своего бота! 🎉
Подписывайтесь на канал 👉 @python_of