Как сделать бота в Telegram: пошаговое руководство

Гайды ·

Как сделать бота в Telegram: пошаговое руководство

Подробная инструкция по созданию бота в Telegram: от регистрации через BotFather до написания кода на Python и запуска на сервере. Разбираем частые ошибки и даём чек-лист для проверки.

Боты в Telegram автоматизируют общение с клиентами, приём заказов, рассылки и поддержку. Если вы хотите сделать бота для своего проекта, но не знаете, с чего начать, это руководство поможет пройти путь от идеи до работающего бота. Мы разберём регистрацию, настройку, написание простого кода и запуск на сервере.

Что нужно перед созданием бота

Для работы потребуется аккаунт в Telegram, компьютер или сервер с доступом в интернет и базовые навыки программирования. Если вы не пишете код, можно использовать визуальные конструкторы, но в этой статье мы рассмотрим классический способ через BotFather и Python.

Регистрация бота через BotFather

  1. Откройте Telegram и найдите @BotFather — официального бота для управления другими ботами.
  2. Нажмите «Start» и отправьте команду /newbot.
  3. Укажите имя бота (например, «Мой помощник») и username, который должен заканчиваться на «bot» (например, my_assistant_bot).
  4. После создания BotFather выдаст токен — длинную строку вида 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Сохраните его, он понадобится для подключения к API.

Настройка бота: команды и описание

Сразу после создания можно задать список команд, которые будут видны пользователям. Вернитесь в чат с BotFather и отправьте /setcommands. Выберите своего бота и введите команды в формате:

  • start - Начать работу
  • help - Получить помощь
  • info - Информация о боте

Также через /setdescription и /setabouttext можно добавить описание, которое отображается в профиле бота.

Пишем простого бота на Python

Для примера создадим бота, который отвечает на команды /start и /help. Понадобится библиотека python-telegram-bot. Установите её командой:

pip install python-telegram-bot

Создайте файл bot.py и добавьте код:

from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text('Привет! Я бот.')

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text('Список команд: /start, /help')

def main():
    app = Application.builder().token('ВАШ_ТОКЕН').build()
    app.add_handler(CommandHandler('start', start))
    app.add_handler(CommandHandler('help', help_command))
    app.run_polling()

if __name__ == '__main__':
    main()

Замените ВАШ_ТОКЕН на токен от BotFather. Запустите скрипт командой python bot.py. Бот начнёт отвечать в личных сообщениях.

Запуск бота на сервере

Чтобы бот работал круглосуточно, его нужно разместить на VPS или выделенном сервере. Подойдёт любой хостинг с поддержкой Python. После загрузки кода установите зависимости и запустите скрипт в фоне через systemd или screen. Для продакшена рекомендуется использовать вебхуки вместо polling, но для старта polling достаточно.

Частые ошибки при создании бота

  • Потеря токена. Если токен попал в открытый доступ, злоумышленник может управлять ботом. Храните его в переменных окружения.
  • Неправильная обработка команд. Убедитесь, что команды зарегистрированы и не конфликтуют.
  • Игнорирование лимитов API. Telegram ограничивает частоту запросов, поэтому для массовых рассылок используйте очереди.
  • Отсутствие обработки ошибок. Добавьте try-except, чтобы бот не падал при сбоях сети.

Чек-лист перед запуском

  1. Бот создан через BotFather, токен сохранён.
  2. Настроены команды и описание.
  3. Код протестирован локально.
  4. Сервер настроен, бот запущен в фоне.
  5. Логирование ошибок включено.

Если вам нужен бот с более сложной логикой — интеграции с CRM, платежами, админ-панелью — обратитесь в NEKARPOV. Мы разрабатываем ботов для Telegram, Discord и других платформ под ключ. Подробнее об услугах на странице Услуги или свяжитесь с нами через Контакты.

Комментарии

Пока нет комментариев — можете написать первый.