1. Что такое Telegram-бот

Бот в Telegram — это специальный аккаунт, который управляется программой, а не человеком. С его помощью можно:
- Отвечать на сообщения пользователей;
- Отправлять уведомления;
- Работать с inline-командами;
- Интегрироваться с внешними API;
- Принимать оплату;
- Вести базы данных и многое другое.
Возможности ботов в Telegram практически безграничны благодаря мощному Telegram Bot API и многочисленным библиотекам для популярных языков программирования.
2. Регистрируем бота через BotFather
Прежде чем писать код, нужно создать самого бота и получить для него токен. Это делается с помощью официального Telegram-бота — BotFather.
Шаги:
- Найдите BotFather в Telegram и откройте чат с ним.
- Нажмите кнопку «Start» или введите /start.
- Введите команду /newbot.
- Вас попросят ввести имя бота — это отображаемое имя, которое будут видеть пользователи.
- Затем введите юзернейм бота — он должен быть уникальным и заканчиваться на bot (например, myfirstbot).
- После этого BotFather выдаст вам токен доступа — уникальный ключ, с помощью которого ваш скрипт будет обращаться к API Telegram.
Сохраняйте токен в безопасном месте — с его помощью можно управлять ботом.
3. Настраиваем среду разработки
Для разработки Telegram-ботов чаще всего используют Python из-за его простоты и популярности. Основная библиотека — python-telegram-bot. Установим её и подготовим среду.
Установка Python и библиотеки:
- Убедитесь, что Python установлен. Проверить это можно командой python —version или python3 —version.
- Установите библиотеку через pip:
css
pip install python-telegram-bot —upgrade
4. Первый бот: пишем код
Создадим самого простого Telegram-бота, который будет отвечать на команду /start.
Пример кода:
python
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes
# Вставьте свой токен сюда
TOKEN = ‘ваш_токен_от_BotFather’
# Функция обработки команды /start
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(«Привет! Я — ваш первый бот.»)
# Создание и запуск бота
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(CommandHandler(«start», start))
print(«Бот запущен…»)
app.run_polling()
Что делает этот код:
- Подключает необходимые модули;
- Обрабатывает команду /start;
- Отправляет приветственное сообщение пользователю;
- Запускает бота в режиме опроса (polling), при котором бот постоянно проверяет наличие новых сообщений.
5. Развиваем функциональность
После успешного запуска базовой версии можно добавить больше команд и логики.
Примеры:
- /help — объяснение возможностей бота;
- /weather — выдача прогноза погоды (через интеграцию с внешним API);
- /quote — случайная цитата дня;
- Inline-кнопки для взаимодействия;
- Обработка обычного текста, а не только команд.
Пример команды /help:
python
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
await update.message.reply_text(«Вот что я умею:\n/start — начать работу\n/help — помощь\n/quote — цитата дня»)
app.add_handler(CommandHandler(«help», help_command))
6. Расширенные возможности: кнопки и меню
Telegram-боты поддерживают клавиатуры — как встроенные (reply keyboard), так и инлайн-кнопки.
Пример инлайн-кнопки:
python
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
keyboard = [
[InlineKeyboardButton(«Цитата», callback_data=’quote’)],
[InlineKeyboardButton(«Погода», callback_data=’weather’)]
]
reply_markup = InlineKeyboardMarkup(keyboard)
await update.message.reply_text(«Выберите действие:», reply_markup=reply_markup)
Чтобы обработать нажатие кнопки, необходимо добавить обработчик CallbackQueryHandler.