Самый быстрый способ развернуть своих телеграм-ботов в Интернете!

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

Не волнуйтесь, после небольшого исследования я теперь представляю способ настроить и запустить вашего телеграмм-бота примерно за час. (Быстрее, если вы уже знакомы с концепциями программирования, например: Python / Git / Heroku)

Для этого урока нам потребуются (при условии, что у вас уже установлены локально git и python):

  • Heroku
  • Python
  • Аккаунт Telegram

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

После создания приложения перейдем к Telegram. Вам необходимо создать бота под BotFather следующим образом.

Заполните всю информацию соответствующим образом, и если бот успешно создан, вы должны увидеть что-то вроде этого:

Затем откройте терминал / cmd и выполните следующие команды

virtualenv botenv
source botenv/bin/activate

Это создает виртуальную среду, которая отделяет зависимости, которые вы устанавливаете с помощью pip3 позже, от других ваших проектов python.

pip3 install pyTelegramBotAPI Flask

Приведенный выше фрагмент кода устанавливает все зависимости, необходимые для работы нашего телеграмм-бота.

После этого создайте файл bot.py в том же каталоге и вставьте в него следующий код:

import telebot
import os
from flask import Flask,request 
TOKEN = "Insert API Token from BotFather here"
bot = telebot.TeleBot(token=TOKEN)
server = Flask(__name__)

Это импортирует все зависимости, которые мы установили ранее с помощью pip3. Нам также необходимо заменить переменную TOKEN токеном, предоставленным BotFather. Обратите внимание, что токен должен быть заключен в открывающую и закрывающую кавычки.

Затем мы можем вставить следующий код в файл, чтобы определить поведение нашего бота (например, если мы отправим / help, бот ответит Справочное сообщение). Взгляните на API для получения дополнительной информации!

Последняя часть нашего файла bot.py состоит из следующих строк кода для настройки веб-перехватчика.

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

Создайте «Procfile» в том же каталоге, что и bot.py (обратите внимание, что Procfile не имеет расширения файла)

Поскольку наш код Python находится в bot.py, мы скопируем следующий код в Procfile:

web: python3 bot.py

Теперь нам нужен файл requirements.txt, чтобы сообщить Heroku, какие зависимости мы установили в наш проект. Создайте файл requirements.txt в том же каталоге, что и bot.py и Procfile, и выполните следующую команду в терминале / cmd

pip3 freeze > requirements.txt

Если вы выполнили этот шаг успешно, теперь файл requirements.txt должен содержать все зависимости, необходимые для правильной работы нашего бота.

Вернувшись в браузер, вы должны оказаться на https://dashboard.heroku.com/apps/‹ app_name›. Перейдите в раздел развертывания страницы, и вы должны увидеть следующее:

В этом проекте мы будем использовать Heroku CLI для развертывания нашего бота на сервере, поэтому скачайте и установите Heroku CLI. После этого на вашем cmd / терминале введите команду выше (логин heroku). После аутентификации сделайте следующее:

git init
heroku git:remote -a <app_name>
git add .
git commit -am "make it better"
git push heroku master

Если вы до сих пор правильно выполнили все вышеперечисленные шаги, вы должны увидеть следующее:

https://<app_name>.herokuapp.com/ deployed to Heroku

И это все! Вы успешно развернули своего бота на Heroku. Теперь вы можете написать своему боту в Telegram и посмотреть, как он отреагирует!



Если вам понравился контент, которым я поделился с вами, проявите немного любви и оставьте несколько комментариев / аплодисментов. Также принимаю предложения о том, чем поделиться дальше!