Як написати Телеграм-бота: Покрокове керівництво для початківців від Євгена Касьяненко
4.9
11
Як написати Телеграм-бота: Покрокове керівництво для початківців від Євгена Касьяненко
Багато хто замислювався над тим, як написати свого бота в Телеграм, адже так можна створити собі персонального асистента, який цілодобово відповідає клієнтам, приймає замовлення і навіть нагадує про важливі завдання. Це як співробітник, який не спить і не йде у відпустку.
Ми, в KISS Software, знаємо, що такий асистент швидко прибирає рутину з роботи і помітно збільшує виручку компаній. Тому сьогодні розповімо простими словами, як написати свого бота в Телеграм і яка мова для цього підійде найкраще. А щоб чат-бот був не іграшкою, а реально працював на вас, поділимося порадами від Євгена Касьяненко – експерта і лідера команди KISS.
Напишіть свого Telegram-бота з нуля!
Пошаговая инструкция, с которой справится даже новичок — разберитесь в базовых шагах и начните разработку уже сегодня
Перед тим, як зануритися у створення чат-ботів у Telegram, пропонуємо усвідомити їх цінність і те, що вони можуть:
Автоматизують рутину. Бот дозволяє приймати питання про ціну або терміни доставки цілодобово. Саме тому вам не потрібен кол-центр на десятки операторів.
Спрощують продажі. Каталог товарів і кнопка «Оплатити» знаходяться прямо в листуванні. Клієнт робить покупку, не виходячи з месенджера.
Розважають і навчають. Міні-ігри або меми успішно утримують увагу і підвищують лояльність аудиторії.
“Телеграм-бот – це відмінний старт для тих, хто тільки знайомиться з автоматизацією. Спочатку він просто каже клієнту «дякую за замовлення». Але проходить трохи часу, і він вже веде розсилки, підключений до CRM і вміє приймати оплату”, – каже Євген Касьяненко.
З чого почати і якою мовою пишуть ботів Telegram?
Перед тим як відкривати гайд по встановленню Python або шукати чужий код, важливо зрозуміти деякі моменти. Телеграм-бот – це інструмент під конкретне завдання. Якщо мета розмита, ви легко наберете зайвих функцій, витратите зайвий бюджет і, швидше за все, отримаєте скрипт, яким ніхто не користується.
Нижче показуємо короткий чек-лист про те, як написати бота в Telegram, який ми в 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-бота може бути простішою, ніж здається. Використовуйте готові кроки та робочі приклади, щоб не загубитися в коді
Пишемо простий чат-бот для 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.
Завантажте туди файли бота і вкажіть свій токен. Так бот зможе зв’язатися з Telegram та іншими необхідними сервісами.
Натисніть запуск і переконайтеся, що бот відповідає в чаті. Тепер він буде онлайн цілодобово, навіть коли ваш комп’ютер вимкнений.
«Перший запуск в хмарі здається складним тільки на словах. Як побачите, що бот відповідає, наступні оновлення робляться буквально в один клік», – зазначає експерт.
Варто мати на увазі деякі обмеження безкоштовних тарифів озвучених вище хмарних сервісів. Так, наприклад:
У безкоштовних Heroku і Render боти «засинають» через 15–30 хвилин без активності – клієнту доведеться почекати, поки бот «прокинеться».
Є обмеження за запитами, пам’яттю і логами – якщо бот росте, потрібно буде перейти на платний план (зазвичай від $5/міс).
Тому при комерційному запуску краще відразу враховувати ці нюанси, щоб бот працював стабільно, без «задумливих пауз».
Питання безпеки та продуктивності
У цьому питанні дуже важливий захист токена. Секретний ключ зберігайте поза кодом – краще у файлі .env або в налаштуваннях сервера. Тоді навіть якщо проект викладуть на GitHub, ніхто не зможе керувати вашим помічником від вашого імені.
«Один клієнт одного разу надіслав нам проект для доопрацювання. Бот у нього раптово перестав відповідати. Виявилося, що токен залишився у відкритому коді на GitHub, і хтось просто його перехопив. Ми допомогли перевипустити ключ, налаштували зберігання через змінні середовища, і з тих пір подібних проблем більше не виникало.” – розповідає Євген Касьяненко.
Ну і на додаток додамо, що важливою є швидкість відповіді. Коли повідомлень стає багато, aiogram обробляє їх паралельно, так що помічник не зависає. Якщо аудиторія продовжить рости, достатньо запустити ще одну копію програми на сервері, і бот спокійно витримає наплив користувачів.
Переваги професійного підходу
Написати бота в Телеграм, який відповідає однією фразою, нескладно, але як тільки з’являється необхідність підключити CRM, налаштувати прийом платежів або убезпечити токени, розходяться шляхи розробника-аматора і досвідченої команди.
Ми в KISS Software починаємо з аналізу бізнес-процесів: дивимося, де саме губляться заявки або клієнти довго чекають відповіді, і пропонуємо сценарій, який відразу закриває проблемні моменти. Потім підключаємо необхідні сервіси, такі як склад, платіжку, маркетингові розсилки тощо. Причому так, щоб чергове оновлення стороннього API не пошкодило роботу асистента. Це важливо.
«Якщо бот не почав приносити користь за 3 місяці, значить, ви щось упустили. Ми в KISS до такого не доводимо», – підкреслює Євген Касьяненко.
Сформулюйте завдання. Що в першу чергу повинен робити асистент?
Пройдіть реєстрацію і отримайте токен у @BotFather.
Встановіть Python і бібліотеку aiogram або будь-яку зручну.
Напишіть мінімальний код – команда /start, кнопка меню.
Підключіть зовнішній сервіс, якщо потрібні погода, оплата або аналітика.
Надішліть код в хмару – Heroku, Render або AWS. З цього моменту бот буде працювати цілодобово.
Тестуйте і вдосконалюйте – обробляйте помилки, збирайте відгуки, додавайте сценарії.
Якщо потрібен не навчальний приклад, а надійний помічник, який реально впливає на виручку, візьмемо все під ключ. Команда KISS під керівництвом Євгена Касьяненко розробить, протестує і супроводить будь-яке рішення для ваших цілей.
Дізнайтеся більше з нашого технічного розділу «Розробка Telegram-ботів»
Щоб отримати безкоштовну консультацію, зв'яжіться з нами прямо зараз, ми підкажемо, як зробити так, щоб ваш бізнес зростав разом із сучасними IT-рішеннями!