💻 ПРОГРАММИРОВАНИЕ

Сделай своего Telegram-бота за вечер

Бот в Telegram — это не магия и не работа на год. За один вечер ты можешь собрать программу, которая отвечает на сообщения, и показать её друзьям прямо в их телефонах.

Сегодня вечером твой телефон лежит в кармане у друга, а на экране всплывает: «Привет! Я твой первый бот». Друг пишет «а ты кто?» — и аккаунт отвечает ему сам, без тебя. Это не дорогое приложение, не год за учебниками и не чужая магия. Рабочего Telegram-бота реально собрать за один вечер штук на тридцать строк кода — и сейчас я проведу тебя за руку от пустого экрана до живого бота.

Что вообще такое «бот»

Бот — это обычная программа, которая прикидывается собеседником в мессенджере. У него есть имя, аватарка, он появляется в чате как живой человек — но за всеми его ответами стоит код, который ты напишешь.

Когда кто-то отправляет боту сообщение, Telegram не несёт его «в бота» напрямую. Telegram кладёт это сообщение к себе на сервер и говорит: «Эй, программа, тут тебе написали — забирай». Твоя программа забирает сообщение, думает, что ответить, и отдаёт ответ обратно Telegram. А Telegram уже доставляет его пользователю. Получается почтальон посередине: ты с пользователем напрямую не видитесь, всё идёт через него.

Вот это «общение программы с Telegram» и есть API (читается «эй-пи-ай»). Если совсем на пальцах — это меню в кафе. Ты не лезешь на кухню сам и не учишься готовить, а выбираешь из списка готовых блюд: «отправить сообщение», «прислать картинку», «показать кнопки». Telegram заранее договорился, что он умеет делать, а ты это просто заказываешь из кода — словами, которые он понимает.

Шаг 1. Получаем токен у @BotFather

Любой бот начинается с регистрации. И регистрирует ботов... другой бот. Его зовут BotFather — это официальный бот Telegram, который выдаёт «паспорта» новым ботам.

  • Открой Telegram и в поиске вбей @BotFather. Выбирай того, у кого синяя галочка, — это официальный.
  • Нажми «Запустить» (Start) и отправь команду /newbot.
  • BotFather спросит имя бота — это то, что увидят люди в чате. Например, «Напоминалка 9Б».
  • Потом он попросит username — уникальный адрес, который обязательно заканчивается на bot. Например, klass9b_reminder_bot. Если такой уже занят, придумай другой — BotFather честно скажет, свободен ли он.
  • Готово! BotFather пришлёт тебе длинную строку вроде 8123456789:AAH...xYz. Это и есть токен.

Токен — это ключ от твоего бота, как пароль от аккаунта. Кто знает токен — тот управляет ботом и может отправлять сообщения от его имени. Поэтому правило номер один: никому его не показывай и не выкладывай в скриншотах и на GitHub. Если случайно «засветил» — открой у BotFather меню своего бота (/mybots → API Token → Revoke current token). Он выдаст новый токен, а старый сразу перестанет работать.

Шаг 2. Готовим Python на компьютере

Важный момент: бот живёт не в браузере, а на компьютере, где запущен Python. Пока программа работает — бот отвечает. Закрыл программу или выключил ноут — бот «уснул» и молчит. (Чтобы он работал круглосуточно, даже когда ты спишь, нужен отдельный сервер в интернете, но это уже следующая серия.)

Тебе понадобится установленный Python (бери свежую версию с сайта python.org) и одна библиотека — aiogram. Это набор готовых инструментов, который прячет всю возню с API за удобными командами. Ставится она одной строкой в терминале:

pip install aiogram

Библиотека — это как набор LEGO: кто-то уже отлил все детали, а ты собираешь из них своё. Без aiogram пришлось бы вручную писать запросы к серверам Telegram, разбирать ответы по буквам и следить за кучей мелочей — скучно и долго. С ней — пара команд, и готово.

Шаг 3. Минимальный бот целиком

А теперь — весь бот. Да, целиком, вот столько кода. Создай файл bot.py и вставь это, подставив свой токен вместо подсказки:

import asyncio
from aiogram import Bot, Dispatcher
from aiogram.types import Message
from aiogram.filters import Command

bot = Bot(token="СЮДА_ТВОЙ_ТОКЕН")
dp = Dispatcher()

# Срабатывает на команду /start
@dp.message(Command("start"))
async def start(message: Message):
    await message.answer("Привет! Я твой первый бот. Напиши мне что-нибудь.")

# Срабатывает на любое обычное сообщение
@dp.message()
async def echo(message: Message):
    await message.answer(f"Ты написал: {message.text}")

async def main():
    await dp.start_polling(bot)

asyncio.run(main())

Разберём по кусочкам, без занудства:

  • bot — это сам бот, который знает свой токен. Через него отправляются ответы.
  • @dp.message(Command("start")) — строчка-«ярлык» над функцией. Она говорит: «функцию ниже вызывай, когда придёт команда /start». Такие ярлыки называют обработчиками (handlers) — они ловят события и решают, что делать.
  • message.answer(...) — это и есть «заказ из меню API»: отправь ответ туда же, откуда пришло сообщение.
  • Второй обработчик без фильтра ловит вообще всё подряд и работает как эхо в горах — повторяет, что ты написал.
  • start_polling — режим, в котором бот сам постоянно теребит Telegram: «ничего новенького не написали? а сейчас? а сейчас?» — и так по кругу, пока программа запущена.

Порядок обработчиков важен: Python проверяет их сверху вниз и берёт первый подходящий. Поэтому /start стоит выше эхо — иначе всеядное эхо перехватывало бы и команды тоже.

Запусти файл командой python bot.py в терминале, найди своего бота в Telegram по username, нажми Start — и он ответит. Поздравляю, ты только что оживил программу.

Что сделать дальше: идеи ботов

Эхо — это весело ровно одну минуту. Дальше начинается самое интересное. Вот идеи, которые реально полезны и при этом по силам новичку:

  • Напоминалка. Пишешь «напомни про тренировку через 2 часа» — бот через два часа стучится тебе сам. Тут пригодится работа со временем и таймерами.
  • Словарь или переводчик. Кидаешь английское слово — бот присылает перевод и пример. Можно держать слова прямо в коде, в обычном словаре Python.
  • Бот для класса. Команда /raspisanie присылает расписание, /dz — домашку, /stolovaya — меню в столовой. Добавь его в общий чат — и весь класс пользуется тем, что ты сделал за вечер.
  • Бот-викторина. Задаёт вопросы с кнопками-вариантами и считает очки. Кнопки в aiogram добавляются буквально парой строк.

Заметь главное: всё это — тот же скелет, что выше. Меняется только то, что бот отвечает внутри обработчиков. Каркас один, начинок — бесконечность.

Что с этим делать

Бот — идеальный первый проект: результат видно сразу, его можно потрогать в своём же телефоне и тут же показать друзьям. Это не абстрактная программа «в никуда», а штука, которой реально пользуются живые люди вокруг тебя.

План на вечер простой: получи токен у BotFather, поставь aiogram, запусти эхо-бот из статьи, а потом замени эхо на свою идею — хоть напоминалку, хоть бота для класса. Сделай первый шаг сегодня, и уже завтра кто-то из друзей напишет: «слушай, а это правда ты сам сделал?» Правда. Сам.

#aiogram#python#telegram#боты