+17
-2
@@ -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: ваш_секретный_токен" \
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user