diff --git a/TELEGRAM_MESSAGING.md b/TELEGRAM_MESSAGING.md index 457c95c..44dbabe 100644 --- a/TELEGRAM_MESSAGING.md +++ b/TELEGRAM_MESSAGING.md @@ -47,8 +47,16 @@ API endpoint `/send_message` находится в Telegram боте, поэто ``` POST /send_message +POST {WEBHOOK_PATH}/send_message ``` +Где `WEBHOOK_PATH` - путь из переменной окружения `WEBHOOK_URL` (например, `/testbot`). + +### Примеры URL: + +- **Локально:** `http://localhost:5005/send_message` +- **Через reverse proxy:** `https://bot.aabpro.ru/testbot/send_message` + ### Заголовки запроса ``` @@ -93,7 +101,8 @@ API защищен секретным токеном, который перед import requests def send_telegram_message(user_id, message): - url = "http://localhost:5005/send_message" + # Используем внешний URL через reverse proxy + url = "https://bot.aabpro.ru/testbot/send_message" data = { "user_id": user_id, "message": message @@ -115,7 +124,13 @@ def send_telegram_message(user_id, message): ### Пример использования из командной строки ```bash -# Используя curl +# Используя curl (через reverse proxy) +curl -X POST https://bot.aabpro.ru/testbot/send_message \ + -H "Content-Type: application/json" \ + -H "X-API-Secret-Token: ваш_секретный_токен" \ + -d '{"user_id": 123456789, "message": "Привет!"}' + +# Используя curl (локально) curl -X POST http://localhost:5005/send_message \ -H "Content-Type: application/json" \ -H "X-API-Secret-Token: ваш_секретный_токен" \ diff --git a/send_telegram_example.py b/send_telegram_example.py index 0d54131..1c479b8 100644 --- a/send_telegram_example.py +++ b/send_telegram_example.py @@ -28,12 +28,10 @@ def send_message(user_id, message_text, bot_url=None, api_token=None): webhook_port = os.getenv('WEBHOOK_PORT', '5005') if webhook_url: - # Извлекаем хост из WEBHOOK_URL - from urllib.parse import urlparse - parsed = urlparse(webhook_url) - bot_url = f"http://{parsed.hostname}:{webhook_port}" + # Используем внешний URL через reverse proxy + bot_url = f"{webhook_url}/send_message" else: - bot_url = f"http://localhost:{webhook_port}" + bot_url = f"http://localhost:{webhook_port}/send_message" if api_token is None: api_token = os.getenv('WEBHOOK_SECRET') diff --git a/templates/index.html b/templates/index.html index 3afb183..b685d5a 100644 --- a/templates/index.html +++ b/templates/index.html @@ -2147,9 +2147,10 @@ const startTime = Date.now(); try { - const response = await fetch(`http://localhost:${BOT_PORT}/send_message`, { + // Используем внешний URL через reverse proxy + const response = await fetch(`https://bot.aabpro.ru/testbot/send_message`, { +// const response = await fetch(`http://localhost:${BOT_PORT}/send_message`, { // const response = await fetch(`http://192.168.0.109:${BOT_PORT}/send_message`, { -// const response = await fetch(`https://bot.aabpro.ru/testbot/send_message`, { method: 'POST', headers: { 'Content-Type': 'application/json', diff --git a/tg_mainbot.py b/tg_mainbot.py index 2769c1f..da6146b 100644 --- a/tg_mainbot.py +++ b/tg_mainbot.py @@ -1280,6 +1280,7 @@ def webhook(): return "Internal Server Error", 500 @app.route('/send_message', methods=['POST']) +@app.route(f'{WEBHOOK_PATH}/send_message', methods=['POST']) def send_message_api(): """API endpoint для отправки сообщений через бота""" # Проверяем секретный токен для защиты API