Создание Telegram-бота прямо на смартфоне

Практический курс для тех, кто хочет программировать ботов, не имея под рукой компьютера. Вы научитесь настраивать мобильную среду разработки, писать код на Python и запускать своих первых ботов.

1. Регистрация нового бота в BotFather и получение API токена

Регистрация нового бота в BotFather и получение API токена

Добро пожаловать в курс «Создание Telegram-бота прямо на смартфоне»! Это первая и, пожалуй, самая важная статья нашего цикла. Мы привыкли думать, что программирование — это занятие для людей, сидящих за мощными компьютерами с двумя мониторами. Однако технологии шагнули далеко вперёд. Сегодня ваш смартфон — это полноценная рабочая станция, способная не только потреблять контент, но и создавать его.

В этой статье мы сделаем первый шаг: официально зарегистрируем вашего будущего бота в системе Telegram и получим «ключи» от него. Мы не будем писать код прямо сейчас — сначала нам нужно получить документы на нашего цифрового помощника.

Что такое Telegram-бот?

Прежде чем мы начнем, давайте разберемся с понятиями. Telegram-бот — это специальный аккаунт, которым управляет не человек, а программа. Он может отвечать на сообщения, отправлять уведомления, принимать платежи и даже управлять умным домом.

Для обычного пользователя бот выглядит как обычный чат. Но на «другом конце провода» сидит не живой собеседник, а алгоритм, который мы с вами будем создавать в следующих уроках.

Знакомство с BotFather

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

BotFather — это официальный бот Telegram, который управляет всеми другими ботами. Через него происходит:

* Создание новых ботов * Настройка их внешнего вида (аватарка, описание) * Управление токенами доступа * Удаление ботов

!Схематичное изображение процесса взаимодействия пользователя со смартфоном и главным ботом BotFather.

Шаг 1: Поиск BotFather

Первое, что вам нужно сделать — найти этого бота в вашем приложении Telegram на телефоне.

  • Откройте Telegram.
  • Нажмите на значок лупы (поиск) в правом верхнем углу (на iOS или Android).
  • Введите в строку поиска: @BotFather.
  • Важно: В результатах поиска может появиться много подделок. Настоящий бот всегда имеет синюю галочку верификации рядом с именем. Его юзернейм должен быть именно @BotFather, без лишних букв, цифр или подчеркиваний.

    Шаг 2: Начало работы

    Нажмите на найденного бота, чтобы открыть чат. Внизу экрана вы увидите большую кнопку Старт (или Start). Нажмите на неё.

    В ответ бот пришлет вам список доступных команд. Это ваше меню управления. Нас интересует раздел создания нового бота.

    Процесс регистрации: команда /newbot

    Теперь переходим к самому интересному — рождению вашего проекта.

    Запуск команды

    В поле ввода сообщения наберите команду или выберите её из списка (обычно она первая):

    BotFather ответит вам (на английском языке): «Alright, a new bot. How are we going to call it? Please choose a name for your bot.» (Хорошо, новый бот. Как мы его назовем? Пожалуйста, выберите имя для вашего бота).

    Имя бота (Name)

    Здесь новички часто путаются. У бота есть два имени:

  • Name (Имя): Это то, что отображается в списке чатов и в заголовке диалога. Это «человеческое» название. Оно может быть на русском языке, содержать пробелы и смайлики.
  • Пример:* Мой Крутой Бот 🤖 Пример:* Помощник по Дому

    Введите желаемое имя и отправьте сообщение.

    Юзернейм (Username)

    После того как вы отправите имя, BotFather попросит придумать Username. Сообщение будет выглядеть так: «Good. Now let's choose a username for your bot. It must end in bot. Like this, for example: TetrisBot or tetris_bot.»

    Username — это уникальный идентификатор (ссылка) на вашего бота. По нему люди будут находить вашего бота через поиск (например, @my_new_bot).

    Правила для Username: * Только латинские буквы, цифры и подчеркивания. * Никаких пробелов. * ОБЯЗАТЕЛЬНО должен заканчиваться на слово bot. * Должен быть уникальным во всем Telegram.

    !Визуальное сравнение двух типов имен бота для понимания различий.

    Типичные проблемы: Скорее всего, простые имена вроде WeatherBot или TestBot уже заняты. Если вы введете занятое имя, BotFather напишет: «Sorry, this username is already taken. Please try something different.»

    Вам придется проявить фантазию. Попробуйте добавить ваше имя или цифры: * Ivan_Weather_2024_bot * MySuperTaskBot

    Когда вы подберете уникальное имя, BotFather поздравит вас сообщением: «Done! Congratulations on your new bot...»

    Святая святых: API Token

    В поздравительном сообщении от BotFather будет содержаться длинная строка из цифр и букв. Это и есть ваш API Token.

    Выглядит он примерно так (это пример, не настоящий токен): 123456789:ABCdefGHIjklMNOpqrsTUVwxyz

    Что такое API Token?

    Представьте, что Telegram — это огромный охраняемый банк. Ваш бот — это сейф в этом банке. А API Token — это единственный ключ от этого сейфа.

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

    > Никогда и никому не передавайте свой токен, если не доверяете этому человеку на 100%. Если токен попадет к злоумышленникам, они смогут перехватить управление вашим ботом.

    Как сохранить токен?

    Поскольку мы работаем с телефона, вам нужно скопировать этот токен.

  • В сообщении от BotFather сам токен обычно выделен моноширинным шрифтом.
  • Просто нажмите на него пальцем — Telegram автоматически скопирует его в буфер обмена.
  • Сохраните его в «Избранное» (Saved Messages) или в заметки на телефоне. Он нам понадобится в следующем уроке.
  • Базовая настройка бота

    Пока мы здесь, давайте сделаем нашего бота красивым. «Голый» бот без аватарки и описания не вызывает доверия у пользователей.

    Установка аватарки

  • Отправьте BotFather команду /setuserpic.
  • Он спросит, какого бота вы хотите настроить (если у вас их несколько). Выберите имя вашего нового бота (нажав на кнопку внизу или написав его юзернейм).
  • BotFather попросит прислать фото. Нажмите на скрепку в Telegram и выберите любое изображение из галереи вашего смартфона.
  • Готово! У вашего бота теперь есть лицо.
  • Добавление описания

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

  • Отправьте команду /setdescription.
  • Выберите вашего бота.
  • Напишите текст. Например: «Привет! Я бот, который поможет тебе создать твоего первого бота прямо на телефоне.»
  • Информация «О боте»

    Это текст, который виден в профиле бота (там, где номер телефона у людей).

  • Отправьте команду /setabouttext.
  • Выберите бота.
  • Напишите короткий текст. Например: «Учебный бот курса».
  • Что делать, если токен украли?

    Если вы случайно опубликовали свой токен в интернете или отправили его не тому человеку, не паникуйте. Ключ можно сменить (как сменить замок в двери).

  • Зайдите в BotFather.
  • Введите команду /revoke.
  • Выберите вашего бота.
  • BotFather аннулирует старый токен и выдаст вам новый. Старый токен мгновенно перестанет работать.
  • Итоги

    Поздравляю! Вы только что прошли путь, который проходит каждый разработчик Telegram-ботов, будь то новичок или профессионал из крупной компании. У вас теперь есть:

  • Зарегистрированный бот.
  • Уникальная ссылка на него (Username).
  • API Токен — ключ для управления.
  • На данном этапе ваш бот «глупый». Если вы найдете его в поиске и нажмете «Старт», он ничего не ответит. Это нормально! Он зарегистрирован в системе, но у него нет «мозгов» — программного кода, который обрабатывает запросы. Именно этим мы и займемся в следующей статье, где выберем инструменты для написания кода прямо на вашем Android или iOS устройстве.

    Сохраните токен и готовьтесь к магии программирования!

    2. Выбор и настройка мобильной IDE: Pydroid 3 или Replit

    Выбор и настройка мобильной IDE: Pydroid 3 или Replit

    В предыдущей статье мы с вами совершили важный шаг — зарегистрировали бота в BotFather и получили заветный API Token. Теперь у нас есть «документы» на бота и ключи от него. Но где же сам бот? Где его «мозги»?

    Пока что наш бот — это просто запись в базе данных Telegram. Чтобы он начал отвечать на сообщения, нам нужно написать программу (код), которая будет управлять им. И здесь мы сталкиваемся с главным вопросом этого курса: как писать код на смартфоне?

    Раньше программирование требовало наличия ноутбука или стационарного компьютера. Сегодня, благодаря современным приложениям, ваш смартфон превращается в мощный инструмент разработки. В этой статье мы выберем и настроим вашу рабочую среду — IDE.

    Что такое IDE и зачем она нужна?

    Прежде чем скачивать приложения, давайте разберемся с терминологией.

    IDE (Integrated Development Environment) — это Интегрированная Среда Разработки. Если говорить простым языком, это «умный блокнот» для программистов.

    Код можно писать хоть в заметках телефона, но это неудобно. IDE помогает вам: * Подсвечивать синтаксис: Разные части кода (команды, текст, числа) окрашиваются в разные цвета, чтобы их было легче читать. * Находить ошибки: Если вы пропустите скобку или кавычку, IDE подскажет, где именно проблема. * Запускать код: Самое главное — IDE превращает ваш текст в работающую программу.

    Для нашего курса мы будем использовать язык программирования Python. Он идеально подходит для новичков и является стандартом де-факто для создания Telegram-ботов.

    Мы рассмотрим два лучших варианта для мобильной разработки: Pydroid 3 (для Android) и Replit (универсальный облачный сервис).

    !Сравнение локальной и облачной среды разработки.

    Вариант 1: Pydroid 3 (Только для Android)

    Если у вас устройство на базе Android, вам крупно повезло. Pydroid 3 — это, пожалуй, самое мощное приложение для запуска Python на телефоне. Оно работает офлайн, то есть вам не нужен интернет для запуска простых скриптов (интернет понадобится только для установки библиотек и работы самого бота).

    Преимущества Pydroid 3:

    * Работает быстро и стабильно. * Не требует постоянного подключения к интернету для написания кода. * Хранит файлы прямо в памяти вашего телефона. * Имеет встроенный терминал (командную строку).

    Установка и первый запуск

  • Откройте Google Play Store.
  • Введите в поиске Pydroid 3.
  • Установите приложение (разработчик IIEC).
  • При первом запуске приложение может предложить установить дополнительные плагины — соглашайтесь, это улучшит работу.
  • Когда вы откроете приложение, вы увидите белый экран с курсором. Это ваш редактор кода. Давайте проверим, всё ли работает. Напишите традиционную первую программу всех программистов:

    Нажмите на большую желтую кнопку Play (треугольник) в нижнем углу экрана. Если открылось черное окно, и в нем появилась надпись Привет, мир!, поздравляю — вы только что запустили свой первый Python-код на телефоне!

    Вариант 2: Replit (iOS и Android)

    Если у вас iPhone (iOS) или вы хотите иметь доступ к своему коду с любого устройства (телефона, планшета, компьютера друга), ваш выбор — Replit.

    Replit — это облачная среда разработки. Это значит, что ваш код выполняется не на процессоре вашего телефона, а на мощных серверах где-то в дата-центре. Ваш телефон выступает лишь как экран и клавиатура.

    Преимущества Replit:

    * Кроссплатформенность: Работает в браузере на любом устройстве. * Облачное хранение: Вы никогда не потеряете код, даже если потеряете телефон. * Постоянная работа: В платных (а иногда и бесплатных с хитростями) тарифах бот может работать 24/7, даже когда вы спите.

    Недостатки:

    * Требует постоянного и стабильного интернета. * На маленьких экранах интерфейс может казаться перегруженным.

    Регистрация и настройка

  • Вы можете скачать приложение Replit из App Store / Google Play или просто зайти на сайт replit.com через браузер (Safari или Chrome).
  • Зарегистрируйтесь (Sign Up). Проще всего использовать вход через Google или Apple ID.
  • После входа нажмите кнопку + Create Repl.
  • В появившемся окне:
  • * Template (Шаблон): Выберите Python. * Title (Название): Назовите проект, например MyFirstBot.
  • Нажмите Create Repl.
  • Перед вами откроется рабочая область. По центру — редактор кода (файл main.py), справа (или снизу на телефоне) — консоль (Console), где будет виден результат.

    Попробуйте написать тот же код:

    Нажмите зеленую кнопку Run вверху экрана. В консоли должен появиться текст.

    Что выбрать?

    Давайте подведем итог, чтобы вы могли окончательно определиться.

    | Характеристика | Pydroid 3 (Android) | Replit (iOS / Android / Web) | | :--- | :--- | :--- | | Интернет | Не нужен для запуска кода | Обязателен всегда | | Скорость | Зависит от мощности телефона | Зависит от скорости интернета | | Удобство | Простой интерфейс | Мощный, но сложный интерфейс | | Хранение | Файлы на телефоне | Файлы в облаке | | Для кого | Владельцы Android | Владельцы iPhone и те, кто меняет устройства |

    > Совет: Если у вас Android, я рекомендую начать с Pydroid 3. Он проще в освоении и быстрее откликается на нажатия. Если у вас iPhone — у вас нет выбора, используйте Replit.

    Подготовка инструментов: Установка библиотек

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

    Библиотека, которую мы будем использовать, называется pyTelegramBotAPI (в коде она часто называется просто telebot).

    Установка в Pydroid 3

    Это самый важный момент настройки. Будьте внимательны.

  • Откройте Pydroid 3.
  • Нажмите на иконку меню (три полоски) в левом верхнем углу.
  • Выберите пункт Pip.
  • Вы увидите вкладку Quick Install (Быстрая установка) и строку поиска, но нам нужна вкладка Install (Установка).
  • В поле ввода напишите точное название библиотеки:
  • Обратите внимание: регистр (большие/маленькие буквы) обычно не важен, но лучше писать как указано.
  • Нажмите кнопку Install.
  • На черном экране побегут строчки кода. Дождитесь надписи Complete или Successfully installed. Это значит, что ваш телефон скачал инструменты для управления ботами.

    !Процесс установки библиотеки в Pydroid 3.

    Установка в Replit

    В Replit всё работает немного иначе. Там «умная» система управления пакетами.

  • В вашем проекте (Repl) найдите слева раздел Tools (Инструменты) и выберите Packages (Пакеты).
  • В поиске введите pyTelegramBotAPI.
  • Нажмите кнопку Install (плюсик).
  • Альтернативный (и более простой) способ в Replit: В Replit часто не нужно ничего устанавливать вручную. Когда мы начнем писать код и напишем первую строчку import telebot, Replit сам поймет, что нам нужна эта библиотека, и установит её автоматически при первом нажатии кнопки Run.

    Проверка готовности

    Давайте убедимся, что библиотека установлена корректно и мы готовы к следующему уроку.

    Вернитесь в редактор кода (удалите print, который мы писали ранее) и напишите следующие две строки:

    Нажмите кнопку запуска (Play в Pydroid или Run в Replit).

    * Если вы увидели надпись: Библиотека успешно подключена! — Поздравляю! Ваша мобильная студия разработки полностью готова. Вы можете создавать ботов любой сложности. * Если вы увидели ошибку: ModuleNotFoundError: No module named 'telebot' — Это значит, что библиотека не установилась. Вернитесь к шагу установки и проверьте правильность написания названия pyTelegramBotAPI.

    Заключение

    Сегодня мы проделали большую работу, хотя и не написали ни строчки логики бота. Мы подготовили фундамент.

  • Мы выбрали инструмент (IDE), который подходит именно вашему смартфону.
  • Мы научились устанавливать внешние модули (библиотеки).
  • Теперь у вас есть: * Токен от BotFather (из прошлой статьи). * Настроенная среда разработки (Pydroid 3 или Replit). * Установленная библиотека pyTelegramBotAPI.

    В следующей статье мы наконец-то соединим эти компоненты. Мы напишем код, который «оживит» вашего бота, и научим его отвечать на команду /start. Готовьтесь, будет интересно!

    3. Написание кода первого эхо-бота с использованием библиотеки telebot

    Написание кода первого эхо-бота с использованием библиотеки telebot

    Добро пожаловать в третий модуль нашего курса! Мы уже проделали огромную подготовительную работу: зарегистрировали «личность» бота через BotFather, получили секретный ключ (API Token) и настроили рабочее место на вашем смартфоне (Pydroid 3 или Replit). Теперь настало время магии.

    Сегодня мы напишем ваш первый настоящий код. Мы создадим так называемого Эхо-бота. Это классический «Hello World» в мире разработки ботов. Суть его проста: вы пишете ему сообщение, а он отправляет вам то же самое сообщение в ответ. Звучит просто, но именно на этом примере мы разберем фундамент, на котором строятся даже самые сложные боты-магазины или нейросетевые помощники.

    Подготовка к старту

    Перед тем как начать писать код, убедитесь, что у вас под рукой есть две вещи:

  • Ваш смартфон с открытым редактором кода (Pydroid 3 или Replit).
  • API Token, который вы получили в первой статье. Он выглядит как длинная строка символов, например: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
  • Если вы готовы, открывайте новый файл в вашем редакторе. Обычно он называется main.py или new_file.py. Сейчас там пусто, но через 10 минут там будет жить ваш бот.

    Шаг 1: Импорт библиотеки

    Любая программа на Python начинается с подключения инструментов. Представьте, что вы собираетесь строить дом. Прежде чем класть кирпичи, вам нужно привезти их на стройплощадку. В программировании это называется импорт.

    В прошлой статье мы установили библиотеку pyTelegramBotAPI. В коде она называется короче — telebot. Напишите самую первую строчку в вашем редакторе:

    Эта команда говорит программе: «Я буду использовать функции для управления Telegram-ботами».

    Шаг 2: Авторизация бота

    Теперь нам нужно «познакомить» наш код с серверами Telegram. Для этого нам и нужен тот самый токен. Мы создадим объект бота — это будет наш главный пульт управления.

    Добавьте следующие строки:

    Важно: Токен должен быть в кавычках (одинарных ' или двойных "). Вместо фразы ВСТАВЬТЕ_ВАШ_ТОКЕН_СЮДА вставьте тот длинный набор символов, который дал BotFather.

    Пример того, как это должно выглядеть (токен вымышленный):

    Переменная bot теперь хранит в себе всю власть над вашим ботом. Через неё мы будем отдавать приказы.

    Шаг 3: Обработка команд

    Бот не может просто так угадывать, что делать. Он работает по принципу: Событие -> Реакция. Нам нужно научить его реагировать на конкретные сообщения.

    Первое, что делает любой пользователь, открывая бота — нажимает кнопку Start. В Telegram это отправляет команду /start.

    Давайте научим бота здороваться. Напишите этот код ниже:

    Разберем этот блок подробно, так как это самая сложная часть для новичков:

  • @bot.message_handler(...) — Это декоратор. Представьте, что это фильтр или секретарь. Он сидит и смотрит на все входящие сообщения. Если сообщение содержит команду /start, он пропускает его дальше.
  • def start_message(message): — Это функция. Это инструкция, что именно нужно сделать. Мы назвали её start_message, но могли назвать хоть hello_world. В скобках message — это письмо от пользователя, которое содержит текст, имя отправителя и другую информацию.
  • bot.send_message(...) — Это команда действия. Мы говорим боту: «Отправь сообщение».
  • * message.chat.id — Это адрес получателя. Мы берем ID чата из входящего письма, чтобы ответить именно тому, кто нам написал. * "Привет!..." — Это текст ответа.

    !Визуализация того, как декоратор перехватывает команду и передает её функции для ответа.

    Шаг 4: Логика Эхо

    Теперь самое интересное. Мы хотим, чтобы бот отвечал на любой текст, который мы ему напишем, повторяя его. Для этого нам нужен еще один обработчик (handler).

    Добавьте этот код после предыдущего блока:

    Что здесь происходит? * content_types=['text'] — Этот фильтр ловит все текстовые сообщения (не картинки, не стикеры, а именно текст). * bot.send_message(message.chat.id, message.text) — Бот отправляет сообщение в тот же чат. Но вместо заранее заготовленной фразы "Привет", он берет message.text — то есть текст того сообщения, которое прислал пользователь.

    Шаг 5: Бесконечный цикл (Polling)

    Мы написали инструкции, но если мы запустим программу сейчас, она прочитает код сверху вниз, дойдет до конца и... выключится. Бот будет «онлайн» всего долю секунды.

    Чтобы бот работал постоянно и ждал новых сообщений, нам нужно запустить Polling (опрос). Это режим, в котором программа постоянно спрашивает у серверов Telegram: «Есть новые сообщения? А сейчас? А теперь?».

    Добавьте в самом конце файла одну простую строку:

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

    Полный код бота

    Давайте проверим, что у вас получилось. Ваш файл main.py должен выглядеть примерно так:

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

    Настало время истины.

  • В Pydroid 3: Нажмите большую желтую кнопку Play (треугольник).
  • В Replit: Нажмите зеленую кнопку Run вверху экрана.
  • Если вы всё сделали правильно, в консоли (черном экране) может ничего не появиться, или появятся технические сообщения о запуске. Главное — программа не должна выдавать ошибок (красный текст) и не должна закрываться.

    Теперь сверните приложение (не закрывайте его!) и откройте Telegram.

  • Найдите своего бота.
  • Нажмите кнопку Старт (или напишите /start).
  • Бот должен ответить: «Привет! Я твой первый бот на смартфоне.»
  • Напишите ему: «Как дела?»
  • Бот ответит: «Как дела?»
  • Напишите: «Тест»
  • Бот ответит: «Тест»
  • Поздравляю! Вы создали работающего Эхо-бота.

    !Схема работы режима Polling, обеспечивающего постоянную связь бота с сервером.

    Возможные ошибки

    Если что-то пошло не так, не паникуйте. Вот самые частые проблемы новичков:

    1. Ошибка IndentationError

    Python очень чувствителен к отступам (пробелам в начале строки). В коде выше строки bot.send_message... обязательно должны иметь отступ (обычно 4 пробела или 1 Tab) относительно строки def.... Если всё прижато к левому краю, код работать не будет.

    2. Ошибка Unauthorized или Invalid Token

    Вы неправильно скопировали токен. Проверьте, не скопировали ли вы лишние пробелы или кавычки. Токен должен быть точь-в-точь как у BotFather.

    3. Бот не отвечает, хотя ошибок нет

    Возможно, у вас нестабильный интернет. Режим polling требует постоянного соединения. Попробуйте перезапустить скрипт (нажать Stop и снова Play).

    4. Ошибка Conflict: terminated by other getUpdates request

    Это значит, что вы запустили бота дважды (например, и на телефоне, и на компьютере, или в двух вкладках). Бот может работать только в одном месте одновременно. Закройте все лишние копии.

    Как это работает под капотом?

    Когда вы пишете сообщение боту, оно улетает на сервер Telegram. Там оно лежит и ждет.

    Ваша программа на Python благодаря команде bot.polling() каждые пару секунд стучится на сервер Telegram и спрашивает: «Есть что-то для меня?». Telegram отдает сообщение.

    Библиотека telebot смотрит на сообщение и проверяет ваши декораторы (@bot.message_handler). * Если это команда /start, срабатывает первая функция. * Если это просто текст, срабатывает вторая функция.

    Функция выполняет команду bot.send_message, которая отправляет ответ обратно на сервер Telegram, а оттуда — на телефон пользователя.

    Заключение

    Сегодня вы перешли из разряда пользователей в разряд создателей. Ваш бот пока умеет только повторять за вами, как попугай, но механизм его работы точно такой же, как у сложных банковских ботов.

    В этом коде мы использовали: * Импорт библиотеки. * Авторизацию через токен. * Декораторы для отлова сообщений. * Функции для ответа. * Polling для постоянной работы.

    В следующей статье мы научим бота быть умнее: добавим красивые кнопки, чтобы пользователю не приходилось вводить команды вручную. Готовьтесь, ваш интерфейс станет намного дружелюбнее!

    4. Расширение функционала: добавление команд и создание кнопок меню

    Расширение функционала: добавление команд и создание кнопок меню

    Приветствую вас, коллеги! Мы продолжаем наш курс по мобильной разработке ботов. В прошлом уроке мы создали «Эхо-бота», который, подобно попугаю, повторял всё, что мы ему писали. Это было весело, но, согласитесь, не очень полезно. Настоящий бот должен уметь выполнять разные задачи, а не просто копировать текст.

    Сегодня мы превратим нашего простого бота в удобный инструмент. Мы научимся двум фундаментальным вещам:

  • Понимать разные команды (не только /start).
  • Создавать красивые кнопки меню, чтобы пользователю не приходилось набирать текст вручную.
  • Открывайте ваш Pydroid 3 или Replit, мы начинаем апгрейд!

    Добавляем новые команды

    Вспомните наш код из прошлого урока. У нас был декоратор @bot.message_handler(commands=['start']). Он говорил боту: «Если видишь команду /start, выполняй эту функцию».

    Чтобы добавить новую команду, например /help (помощь), нам не нужно удалять старый код. Мы просто добавляем новый блок ниже. В программировании это называется масштабируемостью.

    Давайте добавим команду, которая расскажет пользователю об авторе бота.

    Теперь, если пользователь напишет /start, сработает функция приветствия. А если напишет /help — сработает функция помощи. Вы можете создать сколько угодно таких команд: /info, /settings, /contacts.

    Проблема текстового ввода

    Представьте, что вы делаете бота для заказа пиццы. Вы просите пользователя: «Введите, какую пиццу вы хотите: Пепперони или Маргарита».

    Пользователь может написать: * «Пеперони» (с одной п) * «пиперони» * «Хочу первую»

    Для программы все эти варианты — абсолютно разный текст. Обрабатывать все возможные опечатки — адский труд. Именно поэтому в современных ботах используют кнопки. Это ограничивает выбор пользователя и гарантирует, что бот получит именно ту команду, которую ждет.

    !Сравнение текстового ввода и использования кнопок меню.

    Создание клавиатуры (ReplyKeyboardMarkup)

    В Telegram есть два вида кнопок:

  • Reply (Нижние кнопки): Они заменяют собой клавиатуру телефона. Это главное меню бота.
  • Inline (Встроенные кнопки): Они прикрепляются к конкретному сообщению (под текстом). О них мы поговорим в следующих уроках.
  • Сегодня мы создадим Reply-кнопки — основу навигации.

    Шаг 1: Подключение модуля типов

    Чтобы создавать кнопки, нам нужно достать из библиотеки telebot специальный набор инструментов, который называется types. Добавьте эту строку в самое начало вашего файла, сразу после import telebot:

    Шаг 2: Создание разметки

    Теперь изменим нашу функцию start. Когда пользователь нажимает «Старт», мы должны не просто поздороваться, но и сразу показать ему кнопки.

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

    Важные моменты: * resize_keyboard=True: Если не написать этот параметр, кнопки будут огромными, на пол-экрана. Этот параметр делает их аккуратными и компактными. * reply_markup=markup: Это самый важный параметр в bot.send_message. Он говорит Телеграму: «Прикрепи к этому сообщению вот эти кнопки».

    Как научить бота реагировать на кнопки?

    Здесь кроется секрет, который часто не понимают новички. Нажатие на Reply-кнопку равносильно отправке текста, написанного на ней.

    Если пользователь нажмет на кнопку «👋 Поздороваться», бот увидит, как будто пользователь вручную напечатал текст «👋 Поздороваться».

    Значит, нам нужно ловить этот текст! Для этого мы будем использовать конструкцию if ... elif ... else (если ... иначе если ... иначе) внутри обработчика текста.

    Давайте напишем логику обработки:

    !Логика обработки нажатий кнопок через проверку текста.

    Полный код урока

    Теперь соберем всё вместе. Вы можете скопировать этот код в свой main.py на телефоне, не забудьте только вставить свой токен.

    Советы для мобильной разработки

  • Перезапуск: В Pydroid 3 или Replit, когда вы меняете код, обязательно останавливайте предыдущую версию бота (кнопка Stop или квадрат), прежде чем запускать новую. Иначе старая и новая версии будут конфликтовать.
  • Эмодзи: Использование смайликов в тексте кнопок («👋», «❓») делает интерфейс дружелюбнее и понятнее. На телефоне их добавлять очень легко — просто используйте клавиатуру эмодзи.
  • Точность: Текст в проверке `if message.text ==
  • 5. Запуск, тестирование и советы по хостингу бота с телефона

    Запуск, тестирование и советы по хостингу бота с телефона

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

    Однако, как только вы свернете приложение Pydroid 3 или закроете вкладку Replit, вы заметите неприятную особенность: бот перестает отвечать. Почему так происходит? Как заставить его работать вечно? И как проверить, что бот не сломается от первого же нестандартного сообщения?

    В этой финальной статье нашего курса мы разберем жизненный цикл бота: от отладки ошибок до вопросов постоянной работы (хостинга).

    Этап 1: Тестирование и отладка

    Прежде чем показывать бота друзьям, нужно убедиться, что он работает стабильно. В программировании есть понятие «Happy Path» (Счастливый путь) — это когда пользователь нажимает именно те кнопки, которые вы задумали. Но пользователи непредсказуемы. Они могут отправить стикер вместо текста или переслать сообщение из другого канала.

    Логирование: глаза разработчика

    Когда бот запущен на телефоне, вы не видите, что происходит у него «в голове», пока не попросите его об этом рассказать. Самый простой способ следить за работой бота — использовать функцию print().

    Добавьте вывод информации в консоль внутри ваших функций. Это называется логированием.

    Пример кода:

    Теперь, глядя на экран Pydroid или Replit, вы будете видеть историю действий в реальном времени. Если бот перестанет отвечать, вы увидите, на каком сообщении это случилось.

    Защита от падений (Try-Except)

    Представьте ситуацию: вы написали код, который делит число, присланное пользователем, на 10. А пользователь прислал цифру 0. В математике деление на ноль невозможно, поэтому ваша программа выдаст ошибку и полностью остановится. Бот «упадет» и больше не будет реагировать ни на кого, пока вы не перезапустите его вручную.

    Чтобы этого избежать, используется конструкция try...except (попытаться... иначе).

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

    Этап 2: Проблема «Вечного двигателя»

    Многие новички думают: «Я запустил бота на телефоне, теперь он будет работать всегда». К сожалению, это не так. Смартфоны созданы для экономии энергии. Операционная система (Android или iOS) внимательно следит за запущенными приложениями.

    Если вы свернете Pydroid 3 и перестанете трогать телефон, через 5–10 минут система решит: «Это приложение тратит батарею в фоне, а пользователь им не пользуется. Надо его усыпить». Как только система «убивает» процесс Pydroid, связь бота с серверами Telegram разрывается.

    !Визуальное сравнение надежности хостинга на телефоне и на сервере.

    Как продлить жизнь боту на Android (Pydroid 3)

    Если вы хотите, чтобы бот работал, пока телефон лежит в кармане, нужно дать приложению особые права.

  • Уведомление в шторке: Когда вы нажимаете кнопку Play в Pydroid, убедитесь, что в шторке уведомлений телефона появилось сообщение «Pydroid interpreter is running». Пока оно висит, система старается не закрывать приложение.
  • Настройки батареи: Зайдите в настройки телефона -> Приложения -> Pydroid 3 -> Батарея (или Энергосбережение). Выберите режим «Нет ограничений» или «Не экономить заряд».
  • Wakelock (Блокировка сна): В настройках самого Pydroid (в левом меню) иногда есть опция «Keep screen on» (Держать экран включенным). Если экран горит, бот точно работает. Но это быстро разряжает батарею.
  • Вердикт: Запуск на телефоне идеален для разработки и тестов. Но держать бота включенным 24/7 на личном смартфоне — плохая идея. Вы выйдете из зоны Wi-Fi, у вас сядет батарея, или вам позвонят — и бот отключится.

    Особенности Replit (Облако)

    Replit работает не на вашем телефоне, а на сервере. Это значит, что вы можете закрыть браузер, а код теоретически должен продолжать работать.

    Однако в бесплатной версии Replit есть ограничение: если к вашему проекту никто не обращается (нет запросов) в течение некоторого времени, он «засыпает».

    Для серьезных проектов разработчики используют VPS (Virtual Private Server). Это удаленный компьютер, который вы арендуете за небольшую плату (обычно 150–300 рублей в месяц). Но для старта и обучения Replit или Pydroid более чем достаточно.

    Этап 3: Что делать, если бот завис?

    Иногда бывает так: вы нажимаете кнопку, а бот молчит. При этом ошибок в консоли нет. Это часто случается из-за проблем с интернетом или сбоев на серверах Telegram.

    В библиотеке telebot есть встроенный механизм защиты от разрывов связи. Вспомните строку запуска:

    Параметр none_stop=True говорит боту: «Если возникла ошибка связи, не выключайся, а пробуй соединиться снова». Всегда используйте этот параметр.

    Также можно добавить интервал опроса:

    Советы по развитию проекта

    Вы создали базу. Куда двигаться дальше? Вот несколько идей для расширения функционала вашего бота:

  • Отправка медиа: Бот может отправлять не только текст, но и картинки (bot.send_photo), документы и голосовые сообщения.
  • Инлайн-кнопки: Кнопки, которые крепятся под сообщением. Они позволяют создавать сложные меню и интернет-магазины.
  • Базы данных: Чтобы бот «помнил» пользователей, их корзину покупок или настройки, вам понадобится база данных (например, SQLite, которая тоже отлично работает на телефоне).
  • Итоги курса

    Мы прошли большой путь. Теперь вы знаете, что: * Смартфон — это полноценный инструмент разработчика. * BotFather — это паспортный стол для ботов. * Библиотека telebot — это ваш переводчик с языка Python на язык Telegram. * Кнопки и команды — основа удобного интерфейса.

    Главный секрет программирования — это практика. Не бойтесь экспериментировать. Измените текст кнопок, добавьте новые условия, попробуйте сделать бота-калькулятор или бота-визитку. Ваш код в Pydroid или Replit — это пластилин, из которого можно вылепить всё что угодно.

    Удачи в разработке, и пусть ваш бот всегда будет онлайн!