Что понадобится перед стартом

Для создания бота нужен обычный аккаунт Telegram — регистрировать ничего отдельно не придётся. На компьютере понадобится установленный Python версии 3.9 или новее и текстовый редактор для кода, подойдёт даже самый простой. Доступ в интернет обязателен на двух этапах: чтобы получить токен через Telegram и чтобы бот мог принимать сообщения от пользователей во время работы. Никакого отдельного сервера на старте не требуется, для тестов достаточно запускать скрипт прямо на своём компьютере.

Как получить токен через BotFather

BotFather — официальный служебный бот, через который Telegram выдаёт токены доступа для всех новых ботов. Нужно найти его по имени в поиске Telegram, открыть с ним диалог и отправить команду /newbot. Дальше BotFather попросит придумать два имени: отображаемое имя бота, которое видят пользователи в чате, и техническое имя пользователя, которое обязано заканчиваться на «bot» и быть уникальным среди всех ботов Telegram. После этого BotFather пришлёт токен — длинную строку вида «набор цифр, двоеточие, а за ним набор букв и цифр». Токен и есть ключ доступа к управлению ботом от имени программы.

Минимальный код на Python своими словами

Самый простой рабочий бот умеет две вещи: отвечать приветствием на команду /start и повторять любое присланное сообщение обратно отправителю. Такую логику пишут буквально в несколько строк с помощью готовой библиотеки для работы с Telegram Bot API, которая берёт на себя всё общение с серверами Telegram и оставляет автору только обработку событий. В коде создаётся объект бота с указанием полученного от BotFather токена, дальше описывается функция-обработчик команды /start, которая отправляет пользователю текст приветствия, и функция-обработчик обычных текстовых сообщений, которая отправляет полученный текст обратно. В конце файла запускается бесконечный цикл ожидания новых сообщений — именно он делает бота живым, пока скрипт работает.

Какую библиотеку выбрать

Для Python есть несколько зрелых библиотек для работы с Telegram Bot API, и у новичка обычно разбегаются глаза. Aiogram — популярная в русскоязычном сообществе библиотека, построенная на асинхронном коде, с понятной документацией и множеством учебных материалов на русском языке. Python-telegram-bot — другой распространённый вариант с долгой историей и большим сообществом, хорошо документированный на английском языке. Для первого учебного бота разница между ними не критична. Обе умеют главное: принимать сообщения и отправлять ответы, а более тонкие возможности понадобятся уже на следующих этапах, когда простого эхо-бота станет мало.

Как установить и запустить бота

Библиотеку устанавливают через встроенный менеджер пакетов командой pip install с точным названием библиотеки из официальной документации. Написанный файл с кодом запускают обычной командой python с именем файла в командной строке или терминале редактора кода. Если всё сделано правильно, в открытом с Telegram диалоге бот сразу же начнёт отвечать на команду /start и на любые присланные сообщения. Работает бот только до тех пор, пока запущен сам скрипт на компьютере: закрыли терминал или выключили компьютер — бот перестал отвечать. Для круглосуточной работы скрипт со временем переносят на отдельный сервер или в облачный хостинг, где он может работать без участия личного компьютера.

Типичные ошибки новичков

Большая часть проблем на старте связана с окружением вокруг кода, а не с самим кодом, и почти все они решаются за пару минут, если знать, куда смотреть.

  • библиотека установлена не в то окружение Python, из которого запускается скрипт
  • токен скопирован с лишним пробелом или обрезан наполовину
  • один и тот же токен одновременно запущен в двух копиях скрипта, из-за чего Telegram присылает ошибку конфликта
  • забыт вызов функции запуска бесконечного цикла в конце файла, из-за чего скрипт завершается сразу после старта
  • бот не отвечает, потому что диалог с ним ни разу не открыт вручную первым сообщением от пользователя

Частые вопросы

Нужно ли платить за создание бота в Telegram

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

Можно ли изменить имя или картинку бота после создания

Да, через диалог с BotFather доступны отдельные команды для смены отображаемого имени, описания, картинки профиля и даже списка команд, которые Telegram показывает пользователю всплывающей подсказкой. Технический username с окончанием bot после создания сменить сложнее, и в большинстве случаев проще оставить его как есть.

Сколько ботов может создать один человек

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

Как остановить бота, если он больше не нужен

Проще всего просто перестать запускать скрипт: без работающего кода бот не отвечает никому, хотя токен и диалог с ним формально продолжают существовать. Для полного удаления в BotFather есть отдельная команда удаления бота, после которой имя пользователя освобождается и его снова смогут занять.