Files
MAX/SITUATION.md

61 lines
3.3 KiB
Markdown
Raw Normal View History

# Текущая ситуация — MAX / СПРФ (актуализировано 13.02.2025)
## Что это за проект
- **Бот MAX** (мессенджер) получает события по **Webhook** на n8n.
- n8n обрабатывает сообщения и коллбэки, при необходимости ходит в **PostgreSQL** (таблицы `sprf_*`) и в **MAX API** (ответы, кнопки).
- Документация MAX API и инструкции по webhook лежат в `docs/`.
## Что уже настроено и работает
| Компонент | Статус |
|-----------|--------|
| **.env** | Есть: `MAX_BOT_TOKEN`, `N8N_MAX_WORKFLOW`, `MAX_WEBHOOK_SECRET`, параметры PostgreSQL |
| **Webhook в MAX** | Зарегистрирован на `https://n8n.clientright.pro/webhook/sprf_max` (события: `message_created`, `message_callback`, `bot_started`) |
| **Секрет** | Задан в .env; в n8n проверяй заголовок `X-Max-Bot-Api-Secret` |
| **Схема БД** | Выгружена в `sprf_tables_schema.md` (таблицы sprf_claims, sprf_chat_messages, sprf_conversation_state и др.) |
## Что нужно проверить вручную
1. **n8n** (https://n8n.clientright.pro): воркфлоу с нодой **Webhook** включён (Production), путь = `sprf_max`, метод POST.
2. **Проверка доставки**: написать боту в MAX — во входящих данных Webhook в n8n должен появиться объект с `update_type`, `message` и т.д.
## Полезные команды
```bash
# Заново зарегистрировать webhook (если меняли URL или пересоздавали воркфлоу)
python3 register_max_webhook.py
# Проверить, какие подписки зарегистрированы в MAX
python3 -c "
import os, json, urllib.request
from pathlib import Path
for line in Path('.env').read_text().splitlines():
s = line.strip()
if s and not s.startswith('#') and '=' in s:
k, v = s.split('=', 1)
os.environ[k.strip()] = v.strip()
r = urllib.request.urlopen(urllib.request.Request(
os.environ.get('MAX_API_BASE','https://platform-api.max.ru').rstrip('/') + '/subscriptions',
headers={'Authorization': os.environ['MAX_BOT_TOKEN']}, method='GET'))
print(r.read().decode())
"
# Обновить схему таблиц sprf_ из PostgreSQL (нужны PGHOST, PGUSER, PGPASSWORD, PGDATABASE в .env)
python3 fetch_schema.py
```
## Файлы в проекте
- `register_max_webhook.py` — регистрация webhook в MAX
- `fetch_schema.py` — выгрузка схемы таблиц sprf_ в `sprf_tables_schema.md`
- `docs/max-webhook.md` — пошаговая настройка webhook в n8n и в MAX
- `docs/max-api/` — обзор API, методы, объекты (0103)
- `sprf_tables_schema.md` — структура таблиц БД
- `.env` — токены и URL (не коммитить)
## Дальше
- Дорабатывать воркфлоу в n8n под логику бота (ответы, кнопки, запись в БД).
- При смене URL webhook — обновить `N8N_MAX_WORKFLOW` в .env и снова запустить `python3 register_max_webhook.py`.