Установка Telegram бота на CPanel Python PHP поделенный хостинг

Подробности статьи
URL: https://help.gudzon.com/index.php?_m=knowledgebase&_a=viewarticle&kbarticleid=211
Номер статьи: 211
Создан: 10 Oct 2024 02:42 PM

Ответ

Установка бота Telegram на примере flask, telebot

Для создания и установки проектов на Python откройте  cPanel - раздел "Настройка Python приложений".

1) Вы попадаете в меню управления приложения, в котором можете управлять уже существующими приложениями или же нажав на значок + создать новое приложение

2) В открывшемся окне выберите:
-Версия Python  - устанавливаем версию, нужную для проекта
-Корневой каталог приложения - папка в которой расположен проект
-URL приложения - домен или поддомен проекта 

-Файл логов Passenger - обязательно указать путь к файлу логов для проверки логов и ошибок проекта 
нажмите +Создать

3) Установим бота, который будет отправлять нам наши сообщения. Будет использоваться FLASK для вебхука, чтобы процесс не завершался по таймауту. 
В папке проекта создаем файл app.py и вставим наш код, или загрузим готовый файл. 

 

import telebot
from flask import Flask, request
app = Flask(__name__)
application = app

@app.route("/bot", methods=['POST'])
def getMessage():
    bot.process_new_updates([telebot.types.Update.de_json(request.stream.read().decode("utf-8"))])
    return "!", 200
        
@app.route("/")
def webhook():
    bot.remove_webhook()
    bot.set_webhook(url="https://bot.sample.uz/bot") # этот url нужно заменить на url вашего бота!
    return "!", 200

# Ваш токен бота, который вы получите у BotFather в Telegram
BOT_TOKEN = '***********************'

# Инициализация бота
bot = telebot.TeleBot(BOT_TOKEN)

# Обработчик команды /start
@bot.message_handler(commands=['start'])
def handle_start(message):
   bot.send_message(message.chat.id, "Привет, я ваш Telegram-бот!")

# Обработчик текстовых сообщений
@bot.message_handler(func=lambda message: True)
def handle_text(message):
   bot.send_message(message.chat.id, f"Вы написали: {message.text}")
if __name__ == "__main__":
   bot.polling(none_stop=True)

 Вставьте токен Вашего бота и URL-адрес бота.

Внимание: Вам не нужно указывать конкретный порт в коде, так как Passenger (модуль) автоматически управляет этим.

4. Нужно отредактировать файл passenger_wsgi.py

Откройте файл, удалите содержимое и пропишите 

import imp
import os
import sys
sys.path.insert(0, os.path.dirname(__file__)) wsgi = imp.load_source('wsgi', 'app.py')  
application = wsgi.application

5.  Теперь следует установить библиотеки для проекта.

Можно установить используя файл requirements.txt 
Либо через терминал установить вручную: Скопируйте команду для входа в виртуальное окружение и введите команду в терминале

pip install --upgrade pip
pip install flask
pip install telebot

6. Перезапустите приложение 

7. Откройте URL домена/поддомена для проверки web-hook'а

Если получили ответ "!" - то всё получилось 

Осталось  запустить в телеграм:

/start 

По материалам статей ahost.uz