Лайфхаки

Маленькие, полезные хитрости

Python Telegram Bot on VPS: A Step-by-Step Guide

30.12.2024 в 02:36

Python Telegram Bot on VPS: A Step-by-Step Guide

Telegram Bot

Telegram Bot is a powerful tool that allows you to automate various tasks and interact with users on the Telegram platform. It can be used for a wide range of purposes, from simple chatbots to complex automation systems.

VPS

VPS (Virtual Private Server) is a type of hosting that allows you to run your own virtual server on a physical server. It provides you with full control over your server and allows you to install any software you need.

Step-by-Step Guide

In this guide, we will show you how to create a Python Telegram Bot and deploy it on a VPS.

### Step 1: Create a Telegram Bot

To create a Telegram Bot, you need to have a Telegram account and a Telegram Bot API token. You can get the API token by talking to the BotFather on Telegram.

1. Open Telegram and search for BotFather.

2. Start a conversation with BotFather and follow the instructions to create a new bot.

3. BotFather will give you an API token for your bot. Save this token, as you will need it later.

### Step 2: Install Python and pip on VPS

Before you can start creating your Telegram Bot, you need to install Python and pip on your VPS.

1. Connect to your VPS using SSH.

2. Update your system packages by running the following command:

```sql

sudo apt-get update

```

3. Install Python and pip by running the following command:

```sql

sudo apt-get install python3-pip

```

4. Verify that Python and pip are installed by running the following commands:

```bash

python3 --version

pip3 --version

```

### Step 3: Create a Python Telegram Bot

Now that you have Python and pip installed, you can start creating your Telegram Bot.

1. Create a new directory for your bot and navigate to it:

```bash

mkdir my_bot

cd my_bot

```

2. Create a new Python file for your bot and open it in your favorite text editor:

```bash

touch bot.py

nano bot.py

```

3. Add the following code to your bot file:

```python

import telebot

bot = telebot.TeleBot('YOUR_API_TOKEN_HERE')

@bot.message_handler(commands=['start'])

def start_message(message):

bot.send_message(message.chat.id, 'Hello! I am a Telegram Bot created by YOU!')

bot.polling()

```

4. Replace `YOUR_API_TOKEN_HERE` with the API token you received from BotFather.

5. Save and close the file.

6. Install the `telebot` library by running the following command:

```sql

pip3 install telebot

```

7. Run your bot by running the following command:

```sql

python3 bot.py

```

Your bot should now be running and responding to the `/start` command.

### Step 4: Deploy Your Bot on VPS

Now that your bot is running locally, you can deploy it on your VPS.

1. Connect to your VPS using SSH.

2. Create a new directory for your bot and navigate to it:

```bash

mkdir my_bot

cd my_bot

```

3. Copy your bot file to your VPS using SCP:

```bash

scp /path/to/your/bot.py user@your_vps_ip:/path/to/your/bot/directory

```

4. Install the `telebot` library on your VPS by running the following command:

```sql

pip3 install telebot

```

5. Run your bot on your VPS by running the following command:

```sql

python3 bot.py

```

Your bot should now be running on your VPS and responding to the `/start` command.

### Step 5: Test Your Bot

To test your bot, you can send a message to it using the Telegram app.

1. Open the Telegram app and search for your bot.

2. Start a conversation with your bot and send the `/start` command.

3. Your bot should respond with the message "Hello! I am a Telegram Bot created by YOU!"

Congratulations! You have successfully created a Python Telegram Bot and deployed it on a VPS.

### Conclusion

In this guide, we have shown you how to create a Python Telegram Bot and deploy it on a VPS. By following these steps, you can create your own Telegram Bot and automate various tasks on the Telegram platform.

Связанные вопросы и ответы:

1. Что такое VPS и для чего он нужен для запуска Python Telegram бота

* VPS (Virtual Private Server) - это виртуальный сервер, который предоставляется в аренду для размещения веб-сайтов, приложений и других сервисов. Для запуска Python Telegram бота на VPS необходим сервер, на котором можно установить и запустить Python, а также соединиться с Telegram API.

2. Как установить Python на VPS

* Для установки Python на VPS необходимо подключиться к серверу через SSH, а затем выполнить команду для установки Python. В зависимости от операционной системы VPS, команда для установки Python может отличаться. Например, для Ubuntu можно использовать команду "sudo apt-get install python3".

3. Как соединиться с Telegram API

* Для соединения с Telegram API необходимо получить API ключ и токен для бота. Затем, используя библиотеку Python для работы с Telegram API, можно создать объект бота и отправить сообщения пользователям.

4. Как настроить бота для отправки сообщений

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

5. Как настроить бота для отправки файлов

* Для настройки бота для отправки файлов необходимо создать функцию, которая будет отправлять файлы пользователям. Функция должна принимать аргументы, такие как путь к файлу, идентификатор пользователя и т.д.

6. Как настроить бота для работы с базами данных

* Для настройки бота для работы с базами данных необходимо установить библиотеку для работы с базой данных и создать функцию, которая будет выполнять запросы к базе данных. Функция должна принимать аргументы, такие как запрос к базе данных, идентификатор пользователя и т.д.

7. Как настроить бота для работы с API других сервисов

* Для настройки бота для работы с API других сервисов необходимо установить библиотеку для работы с API и создать функцию, которая будет выполнять запросы к API. Функция должна принимать аргументы, такие как запрос к API, идентификатор пользователя и т.д.

8. Как настроить бота для работы с графическим интерфейсом

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

Что такое Python Telegram Bot

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

Я воспользуюсь сервисом.

    Устанавливаем на мобильное устройство Telegram если ещё не было установлено

    Запрашиваем номер на любом сервисе / просто подготавливаем если он у вас есть

    В приложении Telegram вводим подготовленный номер для получения на него смс-сообщения

    Вводим смс-сообщение для входа

    Даем имя аккаунту (фамилию и аватарку по желанию)

    Далее, добавим в аккаунт "Облачный пароль" и "Код пароль". Это необходимо и для надежности аккаунта и упростит нам авторизацию в Pyrogram. Для этого заходим в раздел «Конфиденциальность» из настроек

    Далее советую немного «прогреть» аккаунт. Отправьте пару сообщений, установите пару фото, добавьте описание и прочее. Чем больше прогрев, тем больше шансов на большую жизнеспособность аккаунта.

Регистрация приложения

В отличие от обычных ботов в Telegram, где достаточно было получить токен через BotFather, для работы с User-ботами нам потребуется доступ к клиентскому API Telegram. Это значит, что необходимо зарегистрировать приложение и получить API-ID и API HASH. Эти ключи вы получите один раз, и я покажу, как их удобно использовать на разных устройствах, аналогично токену из бот API.

Следуйте простой инструкции:

    Перейдите на сайт my.telegram.org/auth .

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

Далее, на новом экране, нажмите на «API development tools».

Заполните поля App title , Short name и выберите платформу Desktop (с ней проще всего работать). Пример заполнения данных будет показан на скриншоте ниже.

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

Теперь у нас есть все необходимое чтоб приступить к разработке нашего User-бота, при помощи Python фреймворка Pyrogram.

Какие преимущества имеет запуск Python Telegram Bot на VPS

Развертывание telegram-бота на сервере включает четыре этапа. Расскажем подробно про каждый из них.

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

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

Главное, что от вас потребуется — установить зависимости, необходимые для работы бота. В первую очередь речь идет о языке Python (версия, на которой написан бот, в нашем примере — Python 3) и библиотеке РуTelegramBotAPI. Если сервер работает под Ubuntu, просто введите в терминале следующие команды:

sudo apt install python3
sudo apt install python3-pip

После этого переходите к копированию файлов бота в нужный каталог на сервере.

С помощью консоли создайте каталог, в котором будет обитать telegram-бот:

cd /home
mkdir FolderName
cd FolderName

Теперь залейте в созданную директорию файлы бота. Сделать это можно как с помощью FTP-клиента (например, FileZilla) или панели управления VPS/VDS.

Запуск бота

Осталось сказать, как запустить бота на хостинге. Запуск бота осуществляется командой в терминале Ubuntu:

python3 filename .ру

Обратите внимание, на то, чтобы расширение было именно «ру». Сам файл, как правило, называется main.py или bot.py, но у вас может быть и альтернативное название. После запуска бота остается запустить клиент Telegram и удостоверится, что бот функционирует правильно, зайдя к нему в чат.

Как создать Telegram Bot API ключ

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

1. Передача данных из CRM-системы (например, Битрикс24, amoCRM) в Telegram :

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

2. Настройка автоматических напоминаний в Telegram о предстоящих событиях из Google Calendar :

  • Получайте уведомления в Telegram о предстоящих встречах, дедлайнах и других важных событиях, чтобы ничего не упустить.

3. Получение данных из форм на сайте (например, Tilda) прямо в Telegram :

  • Все заявки, отправленные через формы на вашем сайте, будут мгновенно передаваться в Telegram, что обеспечит оперативную обработку информации.

4. Автоматическая передача лидов из социальных сетей (например, VK Реклама) в Telegram :

  • Собирайте лиды из социальных сетей и отправляйте их в Telegram для дальнейшей обработки и общения с потенциальными клиентами.

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

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

Возможности интеграции

Доступные триггеры

Триггеры — это разные изменения или события, при которых Albato передает данные. Все триггеры работают в режиме реального времени, то есть данные передаются без задержек, в момент когда наступило событие.

  • Входящее сообщение.
  • Новый участник группы.

Доступные действия

Действия — что делает Albato после запуска связки. Также действия позволяют передавать данные в другие сервисы и системы.

  • Отправить сообщение.
  • Заблокировать участника чата.
  • Разблокировать участника чата.
  • Получить участника чата.
  • Дать права администратора участнику чата.
  • Закрепить сообщение чата.

Как создать бота и получить API ключ

Смотри

Процесс интеграции сервисов будет происходить параллельно, поэтому вам потребуется переключаться между личными кабинетами Albato и Telegram.

Перед подключением бота к Albato, нужно его создать или выбрать существующего у специального системного бота @BotFather :

  • Напиши ему команду/start
  • Если у тебя уже есть боты и нужно получить их API ключ, отправь команду/mybots.
  • Выбери из списка нужного бота и запроси API ключ, который потребуется для подключения:
  • Или напиши команду/newbot, для того что бы его создать. 
  • После этого напиши имя твоего бота. Оно будет видно всем.
  • Затем укажи имя пользователя. Оно будет идти после символа «@» и обязательно должно заканчиваться на bot. Например, «youNamebot» или «youName_bot». 

После этого тебе станет доступен API ключ созданного бота и его можно подключать к Albato:

Как создать подключение

  • Зайди в раздел «Подключения».
  • Нажми на кнопку «Добавить подключение».
  • В поле «Ключ API» вставь скопированный у @BotFather API ключ и нажми «Далее».

    Подключение готово!

    Как пользоваться ботом

    После подключения бота, любой пользователь который напишет ему команду/start, автоматически попадет в список ID чатов. А если эту команду написать в группе, когда бот находится там, он спарсит ID текущей группы/канала. 

    Для того что бы отправить сообщение в Telegram, нужно знать ID чата, куда будет передаваться сообщение. Использовать логин или номер телефона нельзя по правилам API Telegram. 

    Поэтому если ты хочешь что-то написать пользователю или в группу, сначала нужно, чтобы боту в нужном чате отправили команду/start. После получения ID чата ты сможешь выбрать его в списке и использовать чат в действии «Отправка сообщения».

Как установить Python на VPS

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

В нашем руководстве мы выделили три способа для установки Django на VPS или VDS-сервер. Кроме того, вы также сможете ознакомиться с процессами инсталляции для операционных систем Ubuntu, CentOS и Debian и выбрать вариант, который подходит вам.

Способ 1. Глобальная установка пакетов Django

Официальные репозитории содержат пакеты Django, которые можно установить с помощью менеджеров apt, apt-get или yum. Это очень просто, но не так гибко, как некоторые другие методы.

Кроме того, версия, хранящаяся в репозиториях, может отставать от официальных версий, необходимых для работы с проектами..

Ubuntu 22.04/Debian 10:

  1. Обновите локальный индекс пакетов с помощью утилиты apt:

sudo apt update

  1. Проверьте, какая версия Python у вас установлена. Ubuntu 22.04 поставляется с Python 3.10 по умолчанию, что вы можете проверить, набрав:

python3 -V

В результате перед вами появится следующий вывод:

Output

Python 3.10.4

  1. Теперь можете установить Django, прописав команду:

sudo apt install python3-django

  1. Убедитесь, что установка прошла успешно, набрав:

django-admin –version

На выходе вы получите приблизительно такой ответ:

Output

3.2.12

Готово! Django установлен на нашем сервере.

CentOS 7:

  1. Используйте утилиту yum для загрузки и установки соответствующих пакетов:

sudo yum install python-django

  1. Убедитесь, что установка завершилась, набрав:

django-admin --version

В случае успеха вы получите ответ с номером версии Django.

Способ 2. Установка Django с помощью команд venv и virtualenv

Самый практичный и рекомендуемый способ установить Django на вашем VPS – сделать это в виртуальной среде. Вы можете создать облегчённую виртуальную среду для своих проектов, используя такие инструменты, как venv и virtualenv.

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

Ubuntu 22.04/Debian 10:

Мы покажем вам, как установить Django в виртуальной среде с помощью модуля venv – части стандартной библиотеки Python 3.

Этот инструмент позволяет создавать виртуальные окружения Python и устанавливать пакеты Python, не затрагивая остальную часть системы.

Как установить библиотеки для Python Telegram Bot

Теперь можно приступить к настройке сервера. Подключаемся к серверу по SHH (для этого можно воспользоваться встроенным терминалом или удобным сторонним ПО, например, PuTTy ).

Для начала добавим нового пользователя, через которого будем вносить все необходимые изменения в настройки сервера (для примера — пользователь с именем ruvds-user). Выполним команду:

После выполнения данной команды указываем пароль для этого пользователя и заполняем информацию о нем.

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

Теперь можем отключиться от пользователя root и начать производить все настройки через нового пользователя. 

Повторно подключаемся по SSH, указав в качестве пользователя ruvds-user:

Этот пользователь обладает достаточными правами, чтобы выполнять все команды администратора, поэтому в целях безопасности можно закрыть SSH доступ для пользователя root. Для этого откроем файл sshd_config:

В открывшемся файле находим PermitRootLogin, удаляем # в начале (если есть) и устанавливаем значение no.

Как настроить файл конфигурации для Telegram Bot

Недавно мы запустили Telegram-бота, через который можно заказать виртуальный сервер. Этот бот помогает арендовать VPS из нашегоили уникальную конфигурацию под ваши цели.
А не возникало ли у вас желания запустить собственный Telegram-бот на своей удалённой виртуалке? Если да, то добро пожаловать под кат, где мы разбираем весь процесс от заказа и подготовки виртуальной машины до запуска бота в работу. Скажем сразу, данная статья — для тех, кто мало знаком с работой Linux-систем и написанием кода Telegram-ботов, но хочет сделать по этому пути один из первых своих шагов.

Заказываем виртуальный сервер

Итак, переходим к созданию виртуального сервера, на котором будет размещаться наш бот. Во-первых, выбираем дата-центр.

Затем указываем конфигурацию нашего будущего VPS. Для хостинга простенького Telegram-бота подойдёт сервер в практически минимальной комплектации под управлением Ubuntu 22.04.

После того, как закончится установка операционной системы, новый VPS появится в списке серверов . Там же указана информация для подключения к нему по SSH: IP-адрес, учётные данные для авторизации — имя пользователя и пароль.

Предварительная настройка операционной системы

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

Во-первых, мы добавим в систему новую учётную запись, которую будем использовать в качестве администратора вместо пользователя root, обладающего абсолютными правами доступа ко всем ресурсам и функциям системы. Команды, требующие для своего выполнения повышения прав до уровня root, мы будем запускать от имени нового пользователя с использованием команды sudo (superuser do).

Итак, подключаемся к нашему серверу по SSH. Для подключения будем использовать соответствующее приложение — Putty . Загружаем дистрибутив, устанавливаем программу и запускаем её. В строку Host Name (or IP address) вводим IP-адрес нашего VPS и нажимаем Open.

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

После успешной авторизации в системе создаём нового пользователя. В нашем примере его имя будет ruvds-user.

adduser ruvds-user

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

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

usermod -aG sudo ruvds-user

На этом миссия учётной записи root заканчивается, поэтому отключаемся от сервера, используя комбинацию клавиш Ctrl d.
Теперь снова запускаем Putty, вводим IP-адрес и авторизуемся на сервере под именем нового пользователя, которым в нашем примере является учётная запись ruvds-user.

Наш новый пользователь обладает достаточным уровнем полномочий для того, чтобы исполнять команды от имени администратора системы. Исходя из этого, мы закроем доступ по SSH для учётной записи root. Для чего при помощи текстового редактора nanoнеобходимо отредактировать файл sshd_config, который располагается в каталоге /etc/ssh/.

cd /etc/ssh/ sudo nano sshd_config

В тексте файла находим строку, содержащую название параметра PermitRootLogin, удаляем в начале строки символ #, если он есть. Данный символ означает, что такая строка является закомментированной, то есть не учитывается в текущей конфигурации. После чего устанавливаем значение параметра в no вместо yes.

Теперь закрываем текстовый редактор с сохранением внесённых изменений. Для этого используем комбинацию клавиш Ctrl x, затем нажимаем y и Enter. И наконец, чтобы изменения вступили в силу, перезапускаем службу SSH при помощи команды:

sudo service ssh restart

Теперь для защиты нашего сервера активируем на нём межсетевой экран. В операционных системах Ubuntu и Debian для управления брандмауэром часто применяется утилита iptables. Её более простым интерфейсом в части настройки межсетевого экрана является UFW — Uncomplicated Firewall. Чтобы открыть доступ к серверу через какое-либо приложение или порт, необходимо добавить в UFW разрешающее правило для этого приложения или порта.

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

sudo apt update

Затем запускаем инсталляцию UFW:

sudo apt install ufw

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

sudo ufw app list

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