Бесплатный урок

Блог для родителей

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

Пиксель у схемы ответов бота, сообщений и закрытого серверного ключа
Иллюстрация UONO. Сначала сценарий и прототип; токены работающего бота хранятся на сервере.

Короткий ответ: первый бот начинается не с регистрации, а с проекта: одна задача, сценарий ответов и прототип, который проверяют на друзьях без аккаунта. Запуск настоящего бота — отдельный этап: регистрация через BotFather по правилам Telegram и хранение токена только на сервере. Если условия сервиса не позволяют подростку действовать самостоятельно, учётные действия выполняет взрослый, которому это разрешено, а подросток работает над сценарием.

Шаг 1. Одна задача

Хороший первый бот делает одно дело: напоминает о расписании кружков, задаёт вопросы для подготовки к контрольной. Попросите подростка сформулировать: кто пользователь, какая у него проблема и что изменится после разговора с ботом.

Дальше в статье разберём один пример: бот-тренажёр перед контрольной по географии. Формулировка задачи может выглядеть так:

  • Пользователь: одноклассник, который готовится к контрольной по теме «Столицы Европы».
  • Проблема: учебник прочитан, но непонятно, что уже запомнилось, а что нет.
  • Что изменится: после десяти вопросов пользователь видит, какие столицы стоит повторить.

Если в формулировке появляется слово «и» («бот проверяет столицы и напоминает о домашке и считает оценки»), задачу стоит сузить. Второе и третье дело можно добавить потом, когда первое уже работает.

Шаг 2. Сценарий

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

Пример правил для бота-помощника (учебный). «Ты помогаешь готовиться к контрольной по географии. Задавай по одному вопросу. Если ответ неверный, объясни коротко. Не проси личные данные. Если вопрос не о географии, вежливо верни разговор к теме».

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

  • /start — бот здоровается, в одном предложении объясняет, что умеет, и предлагает начать.
  • /help — короткая подсказка: как отвечать на вопрос и как остановиться.
  • /stop — бот прекращает тренировку и показывает итог по тем вопросам, что уже были.
  • Другой текст во время тренировки: сначала бот проверяет, не является ли сообщение одной из команд /start, /help или /stop, и если да, выполняет её. Затем он обрабатывает пустые и некорректные сообщения: просит прислать ответ ещё раз и не засчитывает попытку. После этого проверяет, нет ли в тексте персональных данных: если они есть, бот не сохраняет их и напоминает, что их не нужно отправлять. Только если ни одна из этих проверок не сработала, обычный текст засчитывается как ответ на текущий вопрос тренировки.
  • Непонятное сообщение — запасной ответ (fallback): бот не придумывает, а напоминает, что можно сделать.

Удобно записать сценарий в виде таблички на бумаге или списка «если пришло — ответить». Главное — у каждой ветки должен быть конец: пользователь никогда не остаётся в ситуации, где бот молчит.

Шаг 3. Бумажный прототип

Сценарий проверяют без кода и без Telegram. Один человек играет «бота» и отвечает строго по сценарию, другой — пользователь, который пишет ему сообщения на листке или в общем документе.

Учебное упражнение. Пользователь пишет: «привет», «расскажи анекдот», пустое сообщение, «дай свой номер телефона». «Бот» отвечает только тем, что есть в сценарии. Каждый раз, когда подходящего ответа нет, подросток дописывает правило.

Вот как может выглядеть один прогон. Это придуманный учебный диалог, а не ответ настоящего сервиса:

Учебная иллюстрация. Пользователь: /start. Бот: «Привет! Я задаю вопросы про столицы Европы. Отвечай одним словом. Чтобы остановиться, напиши /stop. Начинаем? Столица Португалии?» Пользователь: «Лиссабон». Бот: «Верно! Следующий вопрос: столица Норвегии?»

Теперь трудные случаи — именно ради них и нужен прототип.

Ошибка в ответе. Пользователь пишет «Мадрид» на вопрос о Норвегии. По правилам бот не ругает, а коротко объясняет:

Учебная иллюстрация. Бот: «Не совсем: Мадрид — столица Испании. Столица Норвегии — Осло. Идём дальше?»

Опечатка. Пользователь пишет «лисабон». Здесь подросток решает сам: засчитывать ли ответы с одной пропущенной буквой. Любое решение подходит, если оно записано в сценарии и «бот» каждый раз поступает одинаково.

Пустое или бессмысленное сообщение (только смайлик, набор букв, очень длинный текст). Бот не пытается угадать смысл:

Учебная иллюстрация. Бот: «Не понял ответ. Напиши название города или /help, если нужна подсказка».

Отмена посреди тренировки. Пользователь пишет /stop на пятом вопросе. Бот показывает итог только по пяти вопросам и не продолжает спрашивать.

Просьба о личных данных или попытка их отправить. Пользователь пишет: «дай свой номер» или сам присылает адрес. Бот не просит и не повторяет такие сведения:

Учебная иллюстрация. Бот: «Я не собираю номера и адреса — пожалуйста, не присылай их. Вернёмся к столицам?»

Вопрос не по теме («расскажи анекдот», «реши мне алгебру»). Бот вежливо возвращает к географии и не делает вид, что умеет больше.

Хорошая привычка — после каждого прогона менять роли. Тот, кто играл пользователя, обычно придумывает сообщения, которых автор сценария не ожидал.

Результат — сценарий, в котором предусмотрены и обычные, и трудные сообщения.

Шаг 4. Регистрация — по правилам сервиса

По официальной документации Telegram бот создаётся через служебный бот @BotFather: ему отправляют команду создания нового бота, задают имя и адрес, после чего BotFather выдаёт токен — ключ, которым программа управляет ботом.

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

Шаг 5. Токен и ключи — секреты сервера

Кто знает токен, тот управляет ботом. Поэтому:

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

В примере ниже настоящего токена нет — только имя переменной, значение которой задаётся на сервере:

import os
TOKEN = os.environ["BOT_TOKEN"]  # значение задаётся на сервере, в код и репозиторий не попадает

То же правило касается ключей ИИ-сервисов: их не встраивают в браузерную страницу.

Шаг 6. Проверка

Повторите «трудные» сообщения из бумажного прототипа уже на работающем боте. Если бот использует нейросеть, проверяйте ответы на точность: ИИ может ошибиться уверенно. Всё, что пошло не так, записывайте и исправляйте сценарий.

Удобно оформить проверку как пять ручных тестов. Для каждого заранее записывают, что отправляет пользователь и какой ответ ожидается по сценарию, а после прогона — что произошло на самом деле.

  1. Обычный путь. Отправить /start, ответить правильно на два вопроса. Ожидается: приветствие, вопросы по одному, подтверждение верных ответов.
  2. Неверный ответ. Назвать не ту столицу. Ожидается: короткое объяснение с правильным ответом, без оценок вроде «ты не знаешь географию».
  3. Непонятное сообщение. Отправить смайлик или случайный набор букв. Ожидается: запасной ответ с подсказкой про /help, а не выдуманная реакция.
  4. Отмена. Написать /stop посреди тренировки. Ожидается: итог по уже заданным вопросам и тишина после него, пока пользователь сам не начнёт заново.
  5. Личные данные. Попросить номер телефона или прислать вымышленный адрес. Ожидается: отказ и просьба не присылать такие сведения; бот их не повторяет. Для теста используйте только явно выдуманные данные — никогда настоящие.

Если тест не прошёл, сначала смотрят, есть ли нужная ветка в бумажном сценарии. Часто проблема не в коде, а в том, что правило так и не записали.

Если что-то пошло не так

  • Бот отвечает не по теме. Перечитайте правила ответа: возможно, в них нет фразы о том, что делать с посторонними вопросами.
  • Бот засчитал неверный ответ. Проверьте, где хранится правильный ответ и как сравниваются варианты написания; решение об опечатках должно совпадать со сценарием.
  • Бот молчит. В бумажном прототипе проверьте, нет ли ветки без ответа, и допишите его. Если молчит уже запущенный бот, причина может быть в реализации или подключении — разберите это с преподавателем.
  • Нейросеть уверенно ошиблась. Добавьте в правила указание признавать неуверенность и сверяйте факты по учебнику.

Правила для родителей

  • Бот не собирает телефоны, адреса и фото пользователей.
  • Учтены правила Telegram и ИИ-сервиса, к которому обращается бот.

Несколько вопросов, которые полезно задать подростку, — не для контроля, а чтобы он сам проговорил решения:

  • Кто будет пользоваться ботом и что ему нужно?
  • Что бот ответит на сообщение, которого нет в сценарии?
  • Где хранится токен и кто его знает?
  • Какой тест из пяти было труднее всего пройти и почему?

Важно: то, что курс рассчитан на определённый возраст, не означает, что подростку можно самостоятельно регистрироваться в Telegram или ИИ-сервисе. Это решают правила самих сервисов, и присутствие взрослого рядом их не отменяет. Если правила не позволяют, подросток спокойно работает над сценарием, прототипом и тестами — это и есть основная часть проекта.

Как это устроено в UONO

В программе UONO (Уоно) «От прототипа к своему продукту» для 13–16 лет февраль посвящён своему Telegram-боту: логике помощника и правилам ответа. Живой преподаватель разбирает сценарии и безопасность доступа; первый урок бесплатный.

Занятия проходят в небольших группах — до 8 человек.

Вопросы и ответы

Нужно ли уметь программировать, чтобы сделать бота?

Начать можно с нуля: сначала сценарий и бумажный прототип, затем простая реализация с преподавателем или по документации.

Можно ли зарегистрировать бота через аккаунт друга или знакомого?

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

Где хранить токен бота?

Только на сервере — в переменной окружения или защищённом хранилище. Никогда в браузерном коде, публичном репозитории или на скриншоте.

Что делать, если токен утёк?

Сразу перевыпустить его через BotFather и заменить на сервере.

Может ли бот отвечать с помощью нейросети?

Да, но ключ ИИ-сервиса тоже хранится на сервере, а ответы нужно проверять: нейросеть может ошибаться.

Начните с бесплатного урока

50 минут ребёнок работает над своим проектом с преподавателем онлайн, затем примерно 15 минут преподаватель разговаривает с родителем. Запланируйте около 65 минут.