REST API
Уведомления и пуши
Регистрация Web Push и FCM, формат пуш-уведомлений.
Браузеры используют Web Push (VAPID); нативные приложения регистрируют FCM-токен. Mute (/conversations/{id}/mute) глушит пуши сообщений, кроме упоминаний и ответов вам; silent-сообщения приходят без звука.
Методы#
VAPID-ключ Web Push
Bearer-токен
Публичный ключ для PushManager.subscribe({applicationServerKey}).
Параметры
Без параметров.
Запрос
curl
curl 'https://minchatapp.com/api/push/vapid-key' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
HTTP 200
{
"public_key": "BIgmiEbXaxZR6tPF…example-vapid-public-key"
}
Подписка Web Push
Bearer-токен
Лимит: 20/min
Передайте PushSubscription.toJSON().
Параметры
| Имя | Тип | Описание |
|---|---|---|
subscription
обязательный тело
|
array |
PushSubscription.toJSON(). |
subscription.endpoint
обязательный тело
|
string |
URL push-эндпоинта. |
subscription.keys
обязательный тело
|
array |
Ключи шифрования. |
subscription.keys.p256dh
обязательный тело
|
string |
Публичный ключ. |
subscription.keys.auth
обязательный тело
|
string |
Секрет auth. |
Запрос
curl
curl -X POST 'https://minchatapp.com/api/push/subscribe' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"subscription": {"endpoint": "https://fcm.googleapis.com/fcm/send/abc", "keys": {"p256dh": "BNc…", "auth": "k1…"}}}'
Ответ
HTTP 200
{
"success": true
}
Отписка Web Push
Bearer-токен
Параметры
| Имя | Тип | Описание |
|---|---|---|
subscription
обязательный тело
|
array |
PushSubscription.toJSON(). |
subscription.endpoint
обязательный тело
|
string |
URL push-эндпоинта. |
Запрос
curl
curl -X POST 'https://minchatapp.com/api/push/unsubscribe' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"subscription": {"endpoint": "https://fcm.googleapis.com/fcm/send/abc"}}'
Ответ
HTTP 200
{
"success": true
}
Регистрация FCM-токена
Bearer-токен
Лимит: 20/min
Нативные приложения (Android/desktop).
Параметры
| Имя | Тип | Описание |
|---|---|---|
token
обязательный тело
|
string |
Токен. max 512 chars
|
platform
необязательный тело
|
string |
Платформа клиента. max 20 chars
|
Запрос
curl
curl -X POST 'https://minchatapp.com/api/push/fcm-token' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"token": "fcm-device-token", "platform": "android"}'
Ответ
HTTP 200
{
"success": true
}
Удалить FCM-токен
Bearer-токен
Параметры
| Имя | Тип | Описание |
|---|---|---|
token
обязательный тело
|
string |
Токен. max 512 chars
|
Запрос
curl
curl -X DELETE 'https://minchatapp.com/api/push/fcm-token' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-d '{"token": "fcm-device-token"}'
Ответ
HTTP 200
{
"success": true
}
Тестовый пуш
Bearer-токен
Лимит: 5/10 min
Отправляет тестовое уведомление на все ваши устройства.
Параметры
Без параметров.
Запрос
curl
curl -X POST 'https://minchatapp.com/api/push/test' \
-H "Authorization: Bearer $TOKEN" \
-H 'Accept: application/json'
Ответ
Отвечает HTTP 200.
Содержимое пушей (FCM data)#
Все значения FCM — строки.
| type | Ключи |
|---|---|
message | conversation_id, message_id, sender_id, title, body, silent ("1"/"0"), mention ("1"/"0") |
reaction | conversation_id, message_id, title, body |
call | conversation_id, call_id, mode (audio/video), title (caller) |
call_answered | conversation_id, call_id |
call_ended | conversation_id, call_id, reason |
reminder | reminder_id, conversation_id, message_id, title, body |
login_code | title, body (код входа) |
FCM data
{
"type": "message",
"conversation_id": "12",
"message_id": "4521",
"sender_id": "2",
"title": "Design team",
"body": "Boris Petrov: Build updated",
"silent": "0",
"mention": "1"
}
Web Push содержит title, body, id чата и те же поля type, message_id, silent, mention.