MAX Messenger Button — документация
Версия сервиса: 0.0.1 (22.11.2025)
Базовый шлюз: http://127.0.0.1:3500 → проксирует http://127.0.0.1:3600.
Быстрый старт
pnpm install
pnpm --filter @saas-apps/service-max-messenger dev
pnpm --filter @saas-apps/gateway dev
- Сервис по умолчанию слушает
http://127.0.0.1:3600. - Gateway проксирует путь
/api/v1/max-messenger/*. - Первый запуск создаёт демо-конфиг (можно отключить
MAX_SEED_DEMO=0).
Переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
PORT / HOST |
3600 / 0.0.0.0 |
Сетевые настройки |
MAX_STORE |
memory |
memory или file |
MAX_FILE_PATH |
./data/max-messenger.json |
Путь к JSON, если выбран файловый стор |
MAX_SEED_DEMO |
1 |
0 — не создавать демо-конфиг |
API_KEY |
пусто | Можно включить защиту приватных маршрутов (hook в index.ts) |
CRUD API
Базовый URL через gateway: http://127.0.0.1:3500/api/v1/max-messenger.
| Метод | Путь | Назначение |
|---|---|---|
GET |
/configs |
Список конфигов (id, имя, версия, views/clicks). |
POST |
/configs |
Создать конфиг { name, settings }. |
GET |
/configs/:id |
Детали конфига. |
PUT |
/configs/:id |
Обновить имя/настройки. |
POST |
/configs/:id/publish |
Увеличить версию и отметить published. |
settings описаны схемой services/max-messenger/src/schemas/config.ts. Ключевые поля: messengerLink, iconUrl, размеры кнопки, позиция, эффекты, триггеры появления.
Embed
| Метод | Путь | Описание |
|---|---|---|
GET |
/cfg/:id.json |
Публичный JSON. |
GET |
/embed/:id.js |
Готовый скрипт. |
GET |
/embed/health |
Проверка готовности. |
Сниппет:
<!-- MAX Messenger Button -->
<script src="https://word-pres.ru/api/v1/max-messenger/embed/CONFIG_ID.js" async defer></script>
Скрипт автоматически:
- создаёт фиксированную обёртку (
bottom-left/right,top-left/right), - подгружает иконку, применяет фон/тень/радиус,
- учитывает триггеры (
triggerScroll,triggerTimeout,triggerImmediately,delaySeconds), - отправляет события
viewиclickв/events.
События
POST /events принимает:
{
"id": "abc123def",
"event": "view" | "click",
"t": 1732260000000
}
- Embed отправляет
viewпри первом показе иclickпри клике. - Стор хранит суммарные счётчики (views/clicks) в конфиге.
HTML-конструктор
- Файл:
gateway/site/templates/maxm-builder.html. - Использует
fetch('/api/v1/max-messenger/configs', ...)для создания конфигов, поэтому убедитесь, что сервис запущен. - После создания ID конструктор автоматически подставляет embed и включает предпросмотр.
Диагностика
GET /health→{ status: 'ok' }.GET /embed/healthчерез gatewayhttps://word-pres.ru/api/v1/max-messenger/embed/health.- Вставьте сниппет на тестовую страницу и проверьте, что в DevTools нет 404 и события
view/clickпоявляются в ответах/events. - Список конфигов доступен через SPA (
/app→ карточка Social Floating/Max) или отдельную HTML-админку (пока не реализована).
Next
- Добавить полноценную админ-страницу с таблицей конфигов/метрик.
- Интегрировать авторизацию и тарифы.
- Сгенерировать статическую doc-страницу
/docs/max-messenger(аналог social-floating).