fix: MAX API chat_id передаётся как query-параметр
This commit is contained in:
+11
-6
@@ -72,18 +72,23 @@ async def send_max(message: str) -> None:
|
|||||||
"""Отправляет уведомление в MAX (VK Teams)."""
|
"""Отправляет уведомление в MAX (VK Teams)."""
|
||||||
if not MAX_BOT_TOKEN or not MAX_CHAT_ID:
|
if not MAX_BOT_TOKEN or not MAX_CHAT_ID:
|
||||||
return
|
return
|
||||||
url = f"{MAX_API_URL}/messages"
|
import re
|
||||||
|
# chat_id и user_id — query-параметры, не тело запроса
|
||||||
|
params = {"chat_id": MAX_CHAT_ID}
|
||||||
headers = {
|
headers = {
|
||||||
"Authorization": MAX_BOT_TOKEN,
|
"Authorization": MAX_BOT_TOKEN,
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
}
|
}
|
||||||
# MAX не поддерживает HTML-теги — убираем их
|
# MAX поддерживает HTML — оставляем форматирование
|
||||||
import re
|
payload = {"text": message, "format": "html"}
|
||||||
clean = re.sub(r"<[^>]+>", "", message)
|
|
||||||
payload = {"chat_id": int(MAX_CHAT_ID), "text": clean}
|
|
||||||
async with httpx.AsyncClient(timeout=10) as client:
|
async with httpx.AsyncClient(timeout=10) as client:
|
||||||
try:
|
try:
|
||||||
resp = await client.post(url, headers=headers, json=payload)
|
resp = await client.post(
|
||||||
|
f"{MAX_API_URL}/messages",
|
||||||
|
headers=headers,
|
||||||
|
params=params,
|
||||||
|
json=payload,
|
||||||
|
)
|
||||||
log.info("MAX response %s: %s", resp.status_code, resp.text)
|
log.info("MAX response %s: %s", resp.status_code, resp.text)
|
||||||
resp.raise_for_status()
|
resp.raise_for_status()
|
||||||
log.info("MAX: сообщение отправлено")
|
log.info("MAX: сообщение отправлено")
|
||||||
|
|||||||
Reference in New Issue
Block a user