Кнопки и команды
Они упрощают взаимодействие чат-бота с пользователями в мессенджере, позволяя пользователю выбрать доступное действие из списка. Вот пример, как их можно создать:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup def start(update: Update, context: CallbackContext): keyboard = [[InlineKeyboardButton(«Кнопка 1», callback_data=’1′), InlineKeyboardButton(«Кнопка 2», callback_data=’2′)]] reply_markup = InlineKeyboardMarkup(keyboard).reply_text(‘Выберите опцию:’, reply_markup=reply_markup)
- Импорты InlineKeyboardButton используются для создания кнопок с текстом и данными (callback_data). InlineKeyboardMarkup задает структуру клавиатуры для размещения кнопок.
- Функция start активируется, когда пользователь вводит команду /start.
- Переменная keyboard: Список списков, где каждый вложенный список — это строка кнопок на клавиатуре. Кнопка создается с помощью InlineKeyboardButton, ее текст отображается пользователю, а callback_data передается при нажатии для последующей обработки.
- Переменная reply_markup используется для прикрепления кнопок к сообщению.
- Метод reply_text отправляет сообщение пользователю вместе с разметкой клавиатуры (reply_markup), которая позволяет пользователю выбирать опции, нажимая на кнопки.
- Список списков, где каждый вложенный список — это строка кнопок на клавиатуре.
- Кнопка создается с помощью InlineKeyboardButton, ее текст отображается пользователю, а callback_data передается при нажатии для последующей обработки.
Что такое чат-боты и зачем они нужны?
Чат-бот в Телеграм — это программа, работающая внутри мессенджера Телеграм. Она может отвечать на сообщения, выполнять заранее установленные команды, отправлять уведомления и взаимодействовать с другими сервисами. На вопрос «Как работает чат-бот в Телеграме?» можно ответить просто: он использует Telegram Bot API для связи с пользователями в мессенджере.
Чат-боты многофункциональны, их можно использовать для решения разных задач:
- Бизнес-задачи. Автоматизация обработки заявок, сбор отзывов, автоворонки для продажи товаров и услуг.
- Развлечения. Игры, викторины или общение с ИИ-ботом.
- Образование. Виртуальные ассистенты с предписанными обучающими материалами.
Что такое Telegram-бот
Несложно догадаться, что слово «бот» — это сокращение от «робот». То есть Telegram-бот — это робот, которого вы можете создать и «поселить» прямо в устройствах пользователей мессенджера. Тогда в зависимости от ваших пожеланий он будет делиться с ними контентом, помогать в проведении торговых и финансовых операций или решении бытовых задач, например при заказе еды или выборе подходящего сеанса в ближайшем кинотеатре.
Бот может анонсировать вечеринку или поинтересоваться психологическим состоянием пользователя
Telegram-бот — это небольшое приложение для автоматизации задач и общения с пользователями, которое используется внутри мессенджера.
Сегодня для создания Telegram-ботов уже не нужно изобретать велосипед: чтобы максимально упростить разработку чаще всего используются готовые библиотеки и фреймворки. Однако стоит знать, что в основе любого из этих инструментов лежит бот API — нативный интерфейс от создателей мессенджера, например, Telegram API.
API (Application Programming Interface) — это набор протоколов и стандартов, определяющих взаимодействие между приложениями и обмен информацией. В случае с Telegram они нужны, чтобы ваш бот мог обращаться к серверу мессенджера, отправлять и получать сообщения, координировать работу групп и чатов.
Зачем вам бот: цели и задачи
Telegram-бот — это рабочий инструмент. Но работать на пользу бизнеса или проекта он будет только в том случае, если научить его решать те задачи, которые актуальны для ваших пользователей и сотрудников.
Если вы владелец магазина одежды и запустили бота, который делится с пользователями прогнозом погоды, то пользы не будет. Зато бот, умеющий подобрать список актуальных акций или подборку трендовых аутфитов, напротив, может быть весьма полезен.
Увеличение продаж. С помощью ботов удобно запускать маркетинговые кампании и собирать контактную информацию пользователей.
Сокращение времени выполнения задач и уменьшение нагрузки на персонал. Боты помогут в обработке заказов или создании записей на прием.
Улучшение клиентского сервиса и имиджа компании. Быстро реагировать на запросы пользователей и помогать им в решении задач? Запросто! С Telegram-ботом, умеющим отвечать на часто задаваемые вопросы или предоставлять подробную информацию об услугах и продуктах по запросу. А с помощью сервиса Evolution Managed RAG бота можно научить использовать в ответах пользователям документацию вашего проекта.
Научите AI-агента генерировать точную и актуальную информацию на основе ваших данных
Руководство по разработке и запуску чат бота в Телеграм
Если вам интересно, как написать чат-бота на Python в Телеграмме, следуйте пошаговой инструкции о том, как создать бот в Телеграмме самостоятельно, приведенному ниже.
Шаг 1: подготовка к созданию бота
Прежде чем начать, определитесь, какую бизнес-задачу решает ваш чат-бот и какой ему нужен функционал. Например, у информационного сервиса об актуальных погодных условиях и у бота для тестов на определения уровня депрессии разные задачи и функции. Первый должен высылать уведомления, тогда как второй предполагает несколько сценариев коммуникации.
Шаг 2: регистрация бота через BotFather
Важно: токен должен храниться только у владельца бота, передавать его другим лицам нельзя. Если токен скомпрометирован, то необходимо пересоздать его. Для каждого бота нужно создавать отдельный токен.
Шаг 3: установка Python и библиотек
Поскольку мы разрабатываем телеграм-бот на Python, нужно начать с настройки виртуального окружения и установки библиотеки для удобного создания ботов.
После активации в командной строке должно появиться название окружения:
Шаг 4: написание простого бота
Самый простой из возможных ботов называется эхо-бот. Он просто повторяет сообщения, отправленные пользователем. Если пользователь пишет «Привет», бот отвечает «Привет». Это идеальная отправная точка для новичков в программировании ботов, поскольку он помогает понять, как работает взаимодействие между пользователем и ботом через Telegram Bot API.
- Как обрабатывать входящие сообщения.
- Как отправлять ответы пользователю.
- Как настроить основную структуру бота.
Вот пример простого эхо-бота, который отвечает на сообщения пользователя:
from telegram import Update from import Updater, CommandHandler, MessageHandler, Filters, CallbackContext # Обработчик входящих сообщений def echo(update: Update, context: CallbackContext):.reply_text() # Основная функция def main(): # Инициализация Updater updater = Updater(«BOT_TOKEN») # Диспетчер для обработки входящих обновлений dp = # Добавляем обработчик сообщений dp.add_handler(MessageHandler(& ~, echo)) # Запуск бота updater.start_polling() # Ожидаем завершения работы (например, через Ctrl+C) () if __name__ == ‘__main__’: main()
- содержит текст сообщения, отправленного пользователем.
- reply_text отправляет этот текст обратно пользователю.
Шаг 5: тестирование
Запустите скрипт и отправьте сообщение вашему боту в Telegram. Он должен ответить, повторяя ваше сообщение. При тестировании нужно проверить каждую функцию вашего бота, чтобы убедиться в корректности его работы и избежать неприятных сюрпризов.
Интеграция с внешними платформами
Бота можно интегрировать с различными платформами, такими как CRM, социальными сетями и другими ресурсами. Например, добавим прогноз погоды через OpenWeather API:
- Получите API-ключ на OpenWeather.
- Напишите функцию:
import requests def get_weather(city): api_key = «API_KEY» # Замените на ваш ключ API из OpenWeather url = f»» try: response = (url) response.raise_for_status() # Проверяем, нет ли ошибок HTTP data = () if ‘main’ in data: return f»Температура в {city}: {data[‘main’][‘temp’]}°C» else: return f»Не удалось получить данные о погоде для города: {city}. Убедитесь, что название введено правильно.» except as e: return f»Произошла ошибка при запросе: {e}» if __name__ == «__main__»: city = input(«Введите название города: «) # Запрос ввода города у пользователя print(get_weather(city))
Регистрация Telegram-бота
Перед тем, как начать работу над созданием бота, его нужно зарегистрировать — сформировать API-токен. Давайте разберемся, как это делается.
Создание нового бота через BotFather
Зайдите в телеграм, найдите «отца» всех ботов, введя в поисковой строке мессенджера @BotFather, и перейдите к нему.
Придумайте имя и юзернейм для бота — при желании их можно дублировать.
Бот создан! Обязательно сохраните полученный API-токен, чтобы использовать его для авторизации и дальнейшей работы с ботом.
Установка и настройка среды разработки
Далее нужно убедиться, что вы располагаете всем необходимым для запуска бота на Python. Проверьте, что на вашем устройстве:
- Есть сам язык Python: скачать подходящую версию можно на сайте разработчика. Самая актуальная версия на август 2026 — Python 3.13.
- Установлена среда разработки для Python, например это может быть PyCharm, Visual Studio или Spyder.
Есть сам язык Python: скачать подходящую версию можно на сайте разработчика. Самая актуальная версия на август 2026 — Python 3.13.
Также нужно выбрать одну из библиотек, о которых мы говорили выше. В этой статье в качестве примера будем применять руTelegramBotAPI. Чтобы начать ее использовать в терминале Linux, введите:
Создание виртуального окружения
Перед началом работы с ботом рекомендуется создать виртуальное окружение venv (или virtualenv для более ранних версий Python) — с его помощью удастся изолировать проект, соорудив для него так называемую песочницу. В ней будет удобно запускать приложение вместе со всеми зависимостями, не влияя на другое запущенное в среде ПО.
Venv на Windows
На Windows специально устанавливать venv не придется — оно является частью стандартной библиотеки Python 3 и поставляется вместе с интерпретатором. Для активации утилиты в этой операционной системе введите в командной строке:
Venv на Linux
Чтобы создать виртуальное окружение venv на Linux, действуйте следующим образом:
Затем установите дополнительные пакеты Python, чтобы гарантированно избежать ошибок при сборке:
Venv на macOS
Чтобы активировать виртуальное окружение venv на maсOS также примените команду python3 -m venv venv, а после активируйте ее с source venv/bin/activate.
Регистрируйтесь, чтобы узнать, как с помощью RAG научить AI-агента генерировать точные и актуальные ответы на вопросы на основе данных.
Написание первого скрипта
Перед тем, как начать писать код, импортируйте установленную библиотеку и подключите уникальный токен, который получили при регистрации бота. Для этого используйте команду:
Далее объявите получателя сообщений бота и определите тип контента, на который он будет реагировать.
@bot.message_handler(content_types=[‘text’]) def get_text_messages(message):
Кстати, значение content_types можно изменить или расширить. Например, написав:
Теперь самое время добавить боту функциональности, чтобы в ответ на «Привет», он отвечал «Привет, что я могу для тебя сделать?». Для этого добавьте команду:
if == «Привет»: bot.send_message(message.from_user.id, «Привет, что я могу для тебя сделать?»)
По команде выше бот будет постоянно делать запрос на сервер Telegram, чтобы оперативно ответить, если ему кто-нибудь напишет.
В финале сохраните файл и добавьте в консоль команду, где «bot» — имя бота:
Создание простого эхо-бота
Чтобы еще немного потренироваться в написании кода для Telegram-бота, попробуйте создать эхо-бота — он будет «передразнивать» пользователя, отвечая на сообщения его же словами. Сделайте такого, добавив несколько простых команд:
import telebot; bot = (‘ваш токен’); # Функция, обрабатывающая команду /start @bot.message_handler(commands=[«start»]) def start(m, res=False): bot.send_message(, ‘Напиши мне что-нибудь’) # Получение сообщений от юзера @bot.message_handler(content_types=[«text»]) def handle_text(message): bot.send_message(, ‘Вы написали:’ +) (none_stop=True, interval=0)
Расширение функциональности бота
Если вам недостаточно того, что написанный бот умеет лишь получать и отправлять текстовые сообщения, его функциональность можно расширить.
Добавление логики обработки сообщений
Первым делом попробуйте с помощью бота побольше узнать про пользователя, с которым он общается. Чтобы узнать его имя, фамилию и возраст, добавьте:
name = »; surname = »; age = »; @bot.message_handler(content_types=[‘text’]) def start(message): if == ‘/reg’: bot.send_message(message.from_user.id, ‘Как тебя зовут?’); bot.register_next_step_handler(message, get_name); else: bot.send_message(message.from_user.id, ‘Напиши /reg’); def get_name(message): global name; name =; bot.send_message(message.from_user.id, ‘Какая у тебя фамилия?’); bot.register_next_step_handler(message, get_surnme); def get_age(message): global age; while age == 0: try: age = int() except Exception: bot.send_message(message.from_user.id, ‘Цифрами, пожалуйста’); bot.send_message(message.from_user.id, ‘Тебе ‘+str(age)+’ лет, тебя зовут ‘+name+’ ‘+surname+’?’)
Использование кнопок
А чтобы уточнить полученную информацию, добавив кнопки Да и Нет, измените блок кода get_age следующим образом:
def get_age(message): global age; while age == 0: try: age = int() except Exception: bot.send_message(message.from_user.id, ‘Цифрами, пожалуйста’); keyboard = (); key_yes = (text=’Да’, callback_data=’yes’); (key_yes); key_no= (text=’Нет’, callback_data=’no’); (key_no); question = ‘Тебе ‘+str(age)+’ лет, тебя зовут ‘+name+’ ‘+surname+’?’; bot.send_message(message.from_user.id, text=question, reply_markup=keyboard)
Далее, чтобы кнопки Да и Нет стали кликабельными в чате с ботом, впишите метод-обработчик:
@bot.callback_query_handler(func=lambda call: True) def callback_worker(call): if == «yes»:…. #код сохранения данных, или их обработки bot.send_message(, ‘Запомню:)’); elif == «no»:… #переспрашиваем
Запуск и отладка бота
Чтобы запуск бота прошел гладко, протестировать его работу можно на локальном сервере.
Запуск бота на локальном сервере
Запустите скрипт на своем компьютере — бот будет получать сообщения через long-polling. Проверьте все сценарии: команды, кнопки, обработку разных типов сообщений. Это поможет найти ошибки и оценить стабильность работы без риска для пользователей.
Основные ошибки и их отладка
Вот ошибки, которые чаще всего встречаются при работе с ботами в Telegram:
- Бот не отвечает — проверьте интернет-соединение и наличие () в коде.
- Ошибка аутентификации — убедитесь в том, что добавили корректный токен.
- Падение скрипта — добавьте логирование скрипта и обработку исключений с помощью команды:
Ошибка аутентификации — убедитесь в том, что добавили корректный токен.
Падение скрипта — добавьте логирование скрипта и обработку исключений с помощью команды:
Как развернуть Telegram-бота на сервере?
Чтобы Telegram-бот работал 24/7, его нужно разместить на сервере. Один из самых простых способов — использовать Heroku. Heroku — это PaaS (Platform as a Service), то есть платформа как услуга, которая предоставляет готовую инфраструктуру для запуска приложений, включая серверы, базы данных и инструменты для деплоя. С помощью Heroku вы можете разместить своего Telegram-бота, чтобы он работал круглосуточно, без необходимости настраивать и поддерживать сервер самостоятельно. Сделать это несложно:
Теперь вы знаете, как сделать бота в Telegram. Это не только полезный навык, но и увлекательный процесс. Научиться создавать Telegram-ботов, а также автоматизировать другие бизнес-задачи, можно на [курсе Python-разработчика от компании Хекслет](&promo_start=091224).
Размещение бота в продакшне
Захостить — то есть разместить Telegram-бота на сервере так, чтобы он был доступен в сети — можно тремя способами: на виртуальном сервере (VPS/VDS), в облаке или с помощью специализированного сервиса, например, Heroku, Netlify. О первых двух вариантах поговорим немного подробнее.
Хостинг бота на виртуальном сервере и в облаке
Сперва выберите VPS-провайдера и арендуйте виртуальный сервер — определитесь с его операционной системой и настройте подходящие конфигурации: процессор, память, пространство на диске.
Подключитесь к серверу по SSH и установите на него все необходимые пакеты: Python, менеджер пакетов pip и библиотеку для работы с Telegram API. Затем создайте виртуальное окружение для изолированной работы зависимостей бота.
Облако. Разместить Telegram-бота в облаке тоже не составит труда. Например, на платформе Evolution для этого нужно сперва построить Docker-контейнер и настроить его для работы с Telegram API, а затем запустить бота на виртуальной машине в облаке. Попробуйте сами с помощью нашей пошаговой инструкции, а также небольшого и понятного видео:
Безопасность и лучшие практики
Пока кибератаки становятся все изощреннее, а злоумышленники все хитрее, важно позаботиться о безопасности вашего бота. Вот несколько рекомендаций, которые помогут уберечь его в целости, а данные клиентов — в сохранности.
Берегите API-токен бота. Не передавайте токен в открытых чатах и файлах, а также не храните в коде. А еще ограничьте доступ к серверу, на котором развернут бот.
Фильтруйте поток входящих данных. Чтобы защитить бота от взлома, валидируйте входные данные, ограничивайте число запросов и используйте антиспам-фильтры.
Защищайте вебхуки — коллбеки, которые позволяют боту автоматически получать обновления с сервера Telegram. Ограничьте для них список IP-адресов, от которых принимаются запросы, а также шифруйте трафик и используйте секретные пути, а не стандартные URL.
Ограничьте права доступа бота. Например, не давайте ему прав на удаление клиентских записей.
Не забывайте про обновление библиотек и модулей бота. А также настройте мониторинг и логирование.
Часто задаваемые вопросы по созданию бота в Telegram на Python
Вопрос: Какой язык программирования лучше всего подходит для создания Telegram-бота?
Ответ: Python является одним из самых популярных языков для создания Telegram-ботов благодаря своей простоте и большому количеству библиотек, таких как python-telegram-bot и aiogram.
Вопрос: Нужно ли мне платить за создание бота в Telegram?
Ответ: Нет, создание и использование ботов в Telegram полностью бесплатно. Вы платите только за хостинг, если решите разместить бота на сервере.
Вопрос: Как получить токен для бота?
Ответ: Токен выдается при регистрации бота через официального бота Telegram — BotFather. Просто следуйте инструкциям в диалоге с ним.
Вопрос: Могу ли я создать бота без знания программирования?
Ответ: Да, существуют конструкторы ботов, но для создания кастомной логики и уникального функционала потребуется знание программирования, например, на Python.
Вопрос: Как запустить бота на локальном компьютере?
Ответ: После написания скрипта, запустите его через терминал командой python bot.py. Бот будет работать, пока запущен скрипт.
Вопрос: Что делать, если бот не отвечает на команды?
Ответ: Проверьте, активен ли скрипт, правильно ли указан токен, и нет ли ошибок в коде. Также убедитесь, что бот не заблокирован пользователем.
Вопрос: Как добавить кнопки в Telegram-бота?
Ответ: Используйте библиотеку python-telegram-bot и классы ReplyKeyboardMarkup или InlineKeyboardMarkup для создания клавиатур с кнопками.
Вопрос: Где лучше разместить бота для постоянной работы?
Ответ: Для постоянной работы бота его нужно разместить на сервере. Популярные варианты: VPS (DigitalOcean, Timeweb) или облачные платформы (Heroku, PythonAnywhere).
Вопрос: Как защитить бота от взлома?
Ответ: Никогда не публикуйте токен бота в открытом доступе, используйте переменные окружения, ограничьте доступ к админ-функциям и регулярно обновляйте библиотеки.
Вопрос: Могу ли я использовать один токен для нескольких ботов?
Ответ: Нет, каждый бот должен иметь уникальный токен. При создании нового бота через BotFather вы получите новый токен.
























