Как да направите бот за Telegram с Python

Как да направите бот за Telegram с Python

Python е един от най-популярните езици за програмиране благодарение на своя прост синтаксис и голяма общност. Той се използва за уеб разработка, анализ на данни, изкуствен интелект и автоматизация. Създаването на Telegram бот с Python е чудесен начин за начинаещи програмисти да се запознаят с основите на програмирането, API интеграцията и автоматизацията.

В тази статия ще научите как да създадете свой собствен Telegram бот с Python, стъпка по стъпка – от настройката на сървъра до пускането му в действие.

1. Какво е Python?

Python е интерпретируем, високо ниво на програмен език с динамична семантика. Той е лесен за научаване, четлив и поддържа множество парадигми (процедурно, обектно-ориентирано и функционално програмиране). Някои от ключовите му предимства включват:

  • Простота и четливост – кодът е лесен за разбиране.
  • Голяма стандартна библиотека – предлага готови модули за почти всичко.
  • Крос-платформен – работи на Windows, Linux и macOS.
  • Поддръжка на много frameworks – като Django, Flask, PyTorch и др.

Python е идеален за създаване на Telegram ботове благодарение на библиотеки като python-telegram-bot.

2. Какво е Telegram бот?

Бот за Telegram е автоматизирана програма, която може да изпълнява различни задачи в приложението Telegram. Тези ботове могат да отговарят на съобщения, да изпращат информация, да извършват изчисления, да изпълняват команди и много други.

Telegram предоставя Bot API, което улеснява разработчиците да създават и управляват ботове. С Bot API можете да програмирате бота да комуникира с потребителите, да обработва техните заявки и дори да интегрирате външни услуги.

3. Как се пише код за Telegram с Python?

Преди да започнем със създаването на бота, трябва да инсталираме Python и библиотеката  python-telegram-bot, която е най-добрата библиотека за работа с Telegram Bot API.

Инсталиране на необходимите библиотеки

Първо, инсталирайте библиотеката чрез pip:

pip install python-telegram-bot

4. Подготовка на Ubuntu сървър за стартиране на бота

Ако искате ботът да работи 24/7, трябва да го пуснете на сървър. Ще използваме Ubuntu (напр. 22.04).

Стъпки за настройка:

  • Свържете се със сървъра (чрез SSH):
ssh user@your_server_ip

  • Актуализирайте системата:
sudo apt update && sudo apt upgrade -y

  • Инсталирайте Python и pip:
sudo apt install python3 python3-pip -y

  • Създайте директория за бота:
mkdir telegram_bot && cd telegram_bot

  • Създайте виртуална среда (незадължително, но препоръчително):
python3 -m venv venv
source venv/bin/activate

  • Инсталирайте python-telegram-bot:
pip install python-telegram-bot

5. Кодиране на първия Telegram бот

Създайте файл bot.py и добавете следния код:

from telegram import Update
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

# Токенът от BotFather
TOKEN = "Вашият_токен_тук"

# Функция за командата /start
def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('Здравей! Аз съм твоят Telegram бот!')

# Функция за обработка на текстови съобщения
def echo(update: Update, context: CallbackContext) -> None:
    update.message.reply_text(update.message.text)

def main():
    # Инициализиране на Updater
    updater = Updater(TOKEN)

    # Взимане на dispatcher за регистриране на handlers
    dispatcher = updater.dispatcher

    # Регистриране на команди
    dispatcher.add_handler(CommandHandler("start", start))
    dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))

    # Стартиране на бота
    updater.start_polling()
    updater.idle()  # Ботът спира при натискане на Ctrl+C

if __name__ == '__main__':
    main()

Как да получите токен за бот?

  1. Отворете Telegram и потърсете @BotFather.
  2. Изпратете /newbot и следвайте инструкциите.
  3. Копирайте предоставения токен и го поставете в кода.

6. Стартиране на бота

Изпълнете:

python3 bot.py

Сега ботът трябва да отговаря на /start и да повтаря съобщенията ви.

7. Стартиране на бота във фонов режим

За да работи ботът постоянно, използвайте systemd или screen.

Вариант 1: Използване на screen

sudo apt install screen -y
screen -S telegram_bot
python3 bot.py
# Натиснете Ctrl+A, след това D, за да излезете от screen

Вариант 2: Systemd служба

Създайте файл /etc/systemd/system/telegram_bot.service:

[Unit]
Description=Telegram Bot
After=network.target

[Service]
User=ubuntu
WorkingDirectory=/home/ubuntu/telegram_bot
ExecStart=/home/ubuntu/telegram_bot/venv/bin/python3 /home/ubuntu/telegram_bot/bot.py
Restart=always

[Install]
WantedBy=multi-user.target

След това:

sudo systemctl daemon-reload
sudo systemctl start telegram_bot
sudo systemctl enable telegram_bot  # Автоматично стартиране при рестарт

8. Разширяване на функционалността на бота

Можете да добавите:

  • Нови команди (напр. /help/info)
  • Клавиатури за по-лесно взаимодействие
  • Връзка с бази данни (SQLite, PostgreSQL)
  • API интеграции (напр. за времето, крипто цени)

Пример: Добавяне на команда /info

def info(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('Това е примерен Telegram бот!')

# В main() добавете:
dispatcher.add_handler(CommandHandler("info", info))

9. Актуализиране и рестартиране на бота

  1. Спрете бота (ако работи като услуга):
sudo systemctl stop telegram_bot

Ако използвате screen, влезте в него (screen -r telegram_bot), спрете бота (Ctrl+C) и пуснете го отново.

10. Заключение

Създаването на Telegram бот с Python е забавен и образователен процес, който ви дава възможност да научите основите на програмирането, работата с API и автоматизацията. В тази статия разгледахме всички стъпки – от създаването на бота до неговото стартиране и разширяване.

Вашият бот може да бъде толкова прост или сложен, колкото пожелаете. Можете да добавяте нови команди, да интегрирате външни услуги и дори да създадете интерактивни приложения в Telegram. Сега е ваш ред да експериментирате и да създадете нещо невероятно!

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:

×