Как написать Телеграм бота: Пошаговое руководство для начинающих от Евгения Касьяненко
4.9
11
Как написать Телеграм бота: Пошаговое руководство для начинающих от Евгения Касьяненко
Многие задумывались над тем, как написать своего бота в Телеграм, ведь так можно создать себе персонального ассистента, который круглосуточно отвечает клиентам, принимает заказы и даже напоминает о важных задачах. Это как сотрудник, который не спит и не уходит в отпуск.
Мы, в KISS Software знаем, что такой ассистент быстро убирает рутину из работы и заметно увеличивает выручку компаний. Поэтому сегодня расскажем простыми словами, как написать своего бота в Телеграм и какой язык для этого подойдет лучше всего. А чтобы чат-бот был не игрушкой, а реально работал на вас, поделимся советами от Евгения Касьяненко – эксперта и лидера команды KISS.
Напишите своего Telegram-бота с нуля
Пошаговая инструкция, с которой справится даже новичок — разберитесь в базовых шагах и начните разработку уже сегодня.
Перед тем, как погрузиться в создание чат-ботов в Телеграмм, предлагаем осознать их ценность и что они могут:
Автоматизируют рутину. Бот позволяет принимать вопросы о цене или сроках доставки круглосуточно. Именно поэтому вам не нужен колл-центр на десятки операторов.
Упрощают продажи. Каталог товаров и кнопка “Оплатить” находятся прямо в переписке. Клиент делает покупку, не выходя из мессенджера.
Развлекают и обучают. Мини-игры или мемы успешно удерживают внимание и повышают лояльность аудитории.
“Телеграм-бот – это отличный старт для тех, кто только знакомится с автоматизацией. Вначале он просто говорит клиенту “спасибо за заказ”. Но проходит немного времени, и он уже ведет рассылки, подключен к CRM и умеет принимать оплату“, – говорит Евгений Касьяненко.
С чего начать и на каком языке пишут ботов Telegram?
Перед тем как открывать гайд по установке Python или искать чужой код, важно понять некоторые моменты. Телеграм-бот – это инструмент под конкретную задачу. Если цель размыта, вы легко наберете лишних функций, потратите лишний бюджет и, скорее всего, получите скрипт, которым никто не пользуется.
Ниже показываем короткий чек-лист о том, как написать бота в Телеграм, который мы в KISS Software проходим с каждым заказчиком на первом созвоне.
Определение задачи
В самую первую очередь, сформулируйте ответы на три вопроса – и у вас уже будет мини-ТЗ:
Какую задачу должен решить ассистент? Это может быть прием заказов ночью, быстрый курс валют, запись к врачу. Четкое описание сразу подсказывает, какие кнопки или команды нужны.
Что потребуется для удобства? Нужны ли изображения товара, кнопка “Оплатить”, работа с базой данных? Чем шире список, тем больше кода и тестов.
Кто ваша аудитория? Молодежь любит тапнуть по кнопке, бухгалтеру привычнее ввести простую команду. От этого зависит, покажете ли вы клавиатуру с вариантами или оставите чистый диалог.
“Четкая цель – половина успеха. Чем проще задача, тем быстрее запуск и меньше затрат. Умный бот решает задачу клиента за минимальное число шагов и не перегружает интерфейс ненужными функциями”, – подчеркивает Евгений Касьяненко.
На каком языке пишут ботов Telegram
Наш эксперт заверяет, что проще всего начать с Python, и объясняет почему:
Есть готовые наборы команд (aiogram, python-Telegram-bot). Они уже умеют отправлять сообщения и показывать кнопки.
Относительно низкий порог входа, много уроков и видео, по типу “сделай бота за вечер”. Это упрощает жизнь новичкам.
“По личному опыту хочу сказать, что важно выбрать то, с чем удобно работать самим. Тогда добавить новую кнопку получится за пару минут”, – отмечает наш специалист.
Если у вас уже есть опыт, то можно работать и с другим языком:
JavaScript. Подходит, когда сайт тоже сделан на JavaScript – все пишете на одном языке.
Go или C#. Берут, когда ждут очень много сообщений и нужна высокая скорость работы.
PHP. Хорош, если ваш проект уже размещен на недорогом хостинге с PHP.
Не так важно, какой язык вы выберете, главное, чтобы бот помогал клиенту быстро и без лишней суеты.
Ориентиры по срокам
Простой бот с командами и кнопками – 1–2 недели.
Интеграция с CRM или базой заказов – до месяца.
Как написать чат-бота для Телеграм – подготовка окружения
Если вы задаетесь вопросом, как написать своего бота в Телеграм, нужно сделать два простых шага подготовки:
Оформить боту паспорт – зарегистрировать его через специальный аккаунт @BotFather. Так Телеграм поймет, что это ваш официальный бот и выдаст секретный ключ-токен.
Установить нужные программы на компьютере – сам Python и одну-две библиотеки, чтобы ассистент мог отправлять сообщения.
Сделав эти шаги, вы избавитесь от неожиданных ошибок. Дальше все сведется к написанию текста ответов и добавлению кнопок.
Регистрация бота через BotFather
Чтобы выполнить первоочередную задачу и получить паспорт нашего будущего бота:
Найдите @BotFather в поиске Телеграме. Это официальный ассистент для создания каких-либо других ботов.
Отправьте ему команду /newbot. BotFather пошагово спросит нужные данные.
Укажите имя и username, который заканчивается на bot (например, slice_order_bot).
Получите токен – длинную строку символов. Это секретный идентификатор, через который ваш код будет общаться с Telegram API.
Евгений Касьяненко предупреждает: “Держите токен в секрете! Если произойдет утечка – любой сможет управлять ботом. Если произошла ошибка, вернитесь к программе и получите новый ключ за минуту!”
Установка и настройка Python
Следующий этап требует создания атмосферы для написания кода. Скачайте свежий Python и установите, так поддерживаются все современные библиотеки.
Далее, чтобы написать чат бота Телеграм на Python, следует выполнить такие действия:
Установите последнюю версию Python с python.org. Так вы точно не столкнетесь с ошибками и сможете использовать все свежие фишки.
Откройте терминал в папке проекта и создайте виртуальное окружение (это гарантирует, что зависимости вашего проекта не будут конфликтовать с глобально установленными пакетами), выполнив в консоле:
python -m venv myenv;
для macOS / Linux – source myenv/bin/activate;
для Windows – myenv\Scripts\activate.
Установите библиотеку-помощник, к примеру, aiogram одной строкой – pip install aiogram.
Благодаря этой библиотеке вам не нужно самому писать сложный код. Она уже знает, как общаться с Телеграмм, поэтому создать бота получается гораздо быстрее.
Бот своими руками — это реально!
Разработка Telegram-бота может быть проще, чем кажется. Используйте готовые шаги и рабочие примеры, чтобы не запутаться в коде
Пишем простого чат-бота для Телеграм: пошаговое руководство
Согласно рекомендациям Евгения Касьяненко, перед тем, как добавлять оплату и CRM, полезно попрактиковать Telegram API на самом простом примере. Так что ниже мы покажем четыре шага: от "Привет!" до кнопки с погодой и запроса внешнего сервиса в качестве простого примера.
1
Шаг 1.
2
Шаг 2.
3
Шаг 3.
4
Шаг 4.
1
Шаг 1.
2
Шаг 2.
3
Шаг 3.
4
Шаг 4.
Шаг 1. Минимальный "Приветственный" бот
Если вы хотите в результате получить, бот, который будет отвечать "Привет!" на команду /start:
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
API_TOKEN = "ВАШ_ТОКЕН_ОТ_BOTFATHER"
async def main():
bot = Bot(token=API_TOKEN)
dp = Dispatcher()
@dp.message(Command("start"))
async def start_command(msg: types.Message):
await msg.answer("Привет! Я твой первый бот.")
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())
Останется только сохранить файл, запустить помощника. Откройте чат с ботом, напишите /start – увидите ответ. Поздравляем, все получилось!
Time to deliver
~ 30–60 минут
Шаг 2. Добавляем кнопки и команды
Чтобы бот не казался примитивным, добавим меню с одной клавишей – "Узнать погоду":
from aiogram import types
from aiogram.utils.keyboard import InlineKeyboardBuilder
@dp.message(Command("menu"))
async def show_menu(msg: types.Message):
keyboard = InlineKeyboardBuilder()
keyboard.button(text="Узнать погоду", callback_data="get_weather")
keyboard.adjust(1)
await msg.answer("Выберите действие:", reply_markup=keyboard.as_markup())
Пользователь нажмет кнопку, и бот попросит город, далее через API OpenWeather выдаст температуру.
Time to deliver
~ 1–2 часа
Шаг 3. Подключаем внешний сервис
Допустим, вам нужно, чтобы бот в Телеграм показывал курс биткоина или список товаров со склада. Для этого помощник обращается к онлайн-справочнику – специальному адресу, который отдает свежие данные. Такой адрес называют API. Пример кода:
import requests
def get_rate():
response = requests.get("https://api.coindesk.com/v1/bpi/currentprice.json")
data = response.json()
return data["bpi"]["USD"]["rate_float"]
И все, вместо поиска вручную ваш бот сам найдет курс, получит данные и покажет результат одной строкой.
“Недавно мы создавали телеграм-бот для брокера. Задача – показывать курсы валют в режиме реального времени. Вместо того чтобы вшивать справочник, мы подключили внешний API. Теперь клиент набирает /курс USD и получает актуальные данные за секунду.” – вспоминает Евгений Касьяненко.
Time to deliver
~ 2–3 часа
Шаг 4. Тестируем и расширяем функционал
Перед тем как презентовать бот клиентам, проверьте его настройки:
Непредсказуемый ввод. Что, если человек отправит "123" вместо названия города?
Проблемы сервиса. Как бот реагирует, если OpenWeather не отвечает?
Хранение данных. Если программа собирает заказы или e-mail, сохраните их в SQLite или PostgreSQL, так информация не потеряется.
Time to deliver
~ 1–2 часа
“Первая версия должна быть простой, но устойчивой. Новые функции добавляйте, когда убедитесь, что основа выполнена правильно”, – советует наш специалист.
Если следовать этим инструкциям, то у вас выйдет базовый чат-бот в Телеграм. Он умеет здороваться, показывать меню, обращаться к внешнему API и даже шутить. В общем все, чтобы пользователь чувствовал себя как дома.
Как написать чат-бота на Python и развернуть его в Сети
Когда приветственный скрипт надежно отвечает на вашем ноутбуке, пора выпускать ассистента в реальный мир. Задача деплоя звучит страшно, но на практике это пара простых действий: загрузить код в облако и сказать серверу, какие переменные он должен знать. Ниже показываем пошаговый план, который мы используем в KISS Software.
Деплой на сервер (Heroku, Render, AWS Lightsail)
Пришла пора переместить бот в облако, чтобы он отвечал людям круглосуточно. Процесс выглядит так:
Заведите аккаунт в облаке. Выберите любой сервис с бесплатным тарифом – подойдет Heroku, Render или AWS Lightsail.
Загрузите туда файлы бота и укажите свой токен. Так бот сможет связаться с Телеграмм и другими нужными сервисами.
Нажмите запуск и убедитесь, что бот отвечает в чате. Теперь он будет онлайн круглосуточно, даже когда ваш компьютер выключен.
“Первый запуск в облаке кажется сложным только на словах. Как увидите, что бот отвечает, следующие обновления делаются буквально в один клик”, – отмечает эксперт.
Стоит иметь в виду некоторые ограничения бесплатных тарифов озвученных выше облачных сервисов. Так, например:
У бесплатного Heroku и Render боты “засыпают” через 15–30 минут без активности – клиенту придется подождать, пока бот “проснется”.
Есть ограничения по запросам, памяти и логам – если бот растет, нужно будет перейти на платный план (обычно от $5/мес).
Поэтому при коммерческом запуске лучше сразу учитывать эти нюансы, чтобы бот работал стабильно, без “задумчивых пауз”.
Вопросы безопасности и производительности
В данном вопросе очень важна защита токена. Секретный ключ храните вне кода – лучше в файле .env или в настройках сервера. Тогда даже если проект выложат на GitHub, никто не сможет управлять вашим помощником от вашего имени.
“Один клиент однажды прислал нам проект для доработки. Бот у него внезапно перестал отвечать. Оказалось, что токен остался в открытом коде на GitHub, и кто-то просто его перехватил. Мы помогли перевыпустить ключ, настроили хранение через переменные среды, и с тех пор подобных проблем больше не возникало.” – рассказывает Евгений Касьяненко.
Ну и в дополнение добавим, немаловажна скорость ответа. Когда сообщений становится много, aiogram обрабатывает их параллельно, так что помощник не зависает. Если аудитория продолжит расти, достаточно запустить еще одну копию программы на сервере, и бот спокойно выдержит наплыв пользователей.
Преимущества профессионального подхода
Написать бота в Телеграм, который отвечает одной фразой, несложно, но как только появляется необходимость подключить CRM, настроить прием платежей или обезопасить токены, расходятся пути разработчика-любителя и опытной команды.
Мы в KISS Software начинаем с анализа бизнес-процессов: смотрим, где именно теряются заявки или клиенты долго ждут ответа, и предлагаем сценарий, который сразу закрывает проблемные моменты. Затем подключаем нужные сервисы, такие как склад, платежку, маркетинговые рассылки и т.д. Причем так, чтобы очередное обновление стороннего API не повредило работу ассистента. Это важно.
“Если бот не начал приносить пользу за 3 месяца, значит, вы что-то упустили. Мы в KISS до такого не доводим”, – подчеркивает Евгений Касьяненко.
Сформулируйте задачу. Что в первую очередь должен делать ассистент?
Пройдите регистрацию и получите токен у @BotFather.
Установите Python и библиотеку aiogram или любую удобную.
Напишите минимальный код – команда /start, кнопка меню.
Подключите внешний сервис, если нужны погода, оплата или аналитика.
Отправьте код в облако – Heroku, Render или AWS. С этого момента бот будет работать круглосуточно.
Тестируйте и улучшайте – обрабатывайте ошибки, собирайте отзывы, добавляйте сценарии.
Если нужен не учебный пример, а надежный помощник, который реально влияет на выручку, возьмем все под ключ. Команда KISS под управлением Евгения Касьяненко разработает, протестирует и сопроводит любое решение для ваших целей.
Узнайте больше из нашего технического раздела "Разработка Телеграмм ботов"
Чтобы получить бесплатную консультацию, свяжитесь с нами прямо сейчас, мы подскажем, как сделать так, чтобы ваш бизнес рос вместе с современными IT-решениями!