+17
-2
@@ -47,8 +47,16 @@ API endpoint `/send_message` находится в Telegram боте, поэто
|
|||||||
|
|
||||||
```
|
```
|
||||||
POST /send_message
|
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
|
import requests
|
||||||
|
|
||||||
def send_telegram_message(user_id, message):
|
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 = {
|
data = {
|
||||||
"user_id": user_id,
|
"user_id": user_id,
|
||||||
"message": message
|
"message": message
|
||||||
@@ -115,7 +124,13 @@ def send_telegram_message(user_id, message):
|
|||||||
### Пример использования из командной строки
|
### Пример использования из командной строки
|
||||||
|
|
||||||
```bash
|
```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 \
|
curl -X POST http://localhost:5005/send_message \
|
||||||
-H "Content-Type: application/json" \
|
-H "Content-Type: application/json" \
|
||||||
-H "X-API-Secret-Token: ваш_секретный_токен" \
|
-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')
|
webhook_port = os.getenv('WEBHOOK_PORT', '5005')
|
||||||
|
|
||||||
if webhook_url:
|
if webhook_url:
|
||||||
# Извлекаем хост из WEBHOOK_URL
|
# Используем внешний URL через reverse proxy
|
||||||
from urllib.parse import urlparse
|
bot_url = f"{webhook_url}/send_message"
|
||||||
parsed = urlparse(webhook_url)
|
|
||||||
bot_url = f"http://{parsed.hostname}:{webhook_port}"
|
|
||||||
else:
|
else:
|
||||||
bot_url = f"http://localhost:{webhook_port}"
|
bot_url = f"http://localhost:{webhook_port}/send_message"
|
||||||
|
|
||||||
if api_token is None:
|
if api_token is None:
|
||||||
api_token = os.getenv('WEBHOOK_SECRET')
|
api_token = os.getenv('WEBHOOK_SECRET')
|
||||||
|
|||||||
@@ -2147,9 +2147,10 @@
|
|||||||
const startTime = Date.now();
|
const startTime = Date.now();
|
||||||
|
|
||||||
try {
|
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(`http://192.168.0.109:${BOT_PORT}/send_message`, {
|
||||||
// const response = await fetch(`https://bot.aabpro.ru/testbot/send_message`, {
|
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
|||||||
@@ -1280,6 +1280,7 @@ def webhook():
|
|||||||
return "Internal Server Error", 500
|
return "Internal Server Error", 500
|
||||||
|
|
||||||
@app.route('/send_message', methods=['POST'])
|
@app.route('/send_message', methods=['POST'])
|
||||||
|
@app.route(f'{WEBHOOK_PATH}/send_message', methods=['POST'])
|
||||||
def send_message_api():
|
def send_message_api():
|
||||||
"""API endpoint для отправки сообщений через бота"""
|
"""API endpoint для отправки сообщений через бота"""
|
||||||
# Проверяем секретный токен для защиты API
|
# Проверяем секретный токен для защиты API
|
||||||
|
|||||||
Reference in New Issue
Block a user