К содержимому

REST API

Уведомления и пуши

Регистрация Web Push и FCM, формат пуш-уведомлений.

Браузеры используют Web Push (VAPID); нативные приложения регистрируют FCM-токен. Mute (/conversations/{id}/mute) глушит пуши сообщений, кроме упоминаний и ответов вам; silent-сообщения приходят без звука.

Методы#

GET /api/push/vapid-key #

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"
}
POST /api/push/subscribe #

Подписка 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
}
POST /api/push/unsubscribe #

Отписка 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
}
POST /api/push/fcm-token #

Регистрация 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
}
DELETE /api/push/fcm-token #

Удалить 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
}
POST /api/push/test #

Тестовый пуш

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Ключи
messageconversation_id, message_id, sender_id, title, body, silent ("1"/"0"), mention ("1"/"0")
reactionconversation_id, message_id, title, body
callconversation_id, call_id, mode (audio/video), title (caller)
call_answeredconversation_id, call_id
call_endedconversation_id, call_id, reason
reminderreminder_id, conversation_id, message_id, title, body
login_codetitle, 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.