Для создания и установки проектов на 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