Реєстрація інсталяції
Реєструйте пристрій при вході користувача — доти на нього неможливо адресувати повідомлення.
POST /api/push/registerInstallation
X-Push-App-Key: <ключ застосунку>
Content-Type: application/json
{
"externalUserId": "operator-497",
"firebaseInstallationId": "fA9kQ2xRTb2mLp0WYs4nEv",
"fcmToken": "fA9kQ2xRTb2mLp0WYs4nEv:APA91bH3xK…",
"platform": "android",
"notificationsEnabled": true
}
Поля
| Поле | Обов’язкове | Примітки |
|---|---|---|
externalUserId | так | Стабільний ID користувача. В одного користувача може бути кілька інсталяцій. Додавайте префікс — operator-497, client-497 — бо ID операторів і клієнтів живуть в одному просторі й інакше зіткнуться. |
firebaseInstallationId | так | З Installations SDK. Ключ upsert разом із застосунком. |
fcmToken | на практиці так | З Messaging SDK. Єдине значення, на яке API відправки може доставити. У схемі опціональне, щоб старі клієнти працювали, але інсталяція без нього недоставна. |
platform | так | "android" або "ios", лише малими літерами. |
notificationsEnabled | ні | За замовчуванням true. false виключає інсталяцію з розсилок. |
Відповіді
| Код | Значення |
|---|---|
200 | Прийнято |
400 | Некоректні поля |
401 | Невідомий або неактивний застосунок |
Надсилайте обидва ідентифікатори
FID лишається ключем upsert, а доставка йде на токен. Оскільки токен ротується незалежно від FID, кожна реєстрація має перезаписувати збережений токен.
Надсилання лише installation id — найпоширеніша помилка інтеграції: FCM v1 приймає в message.token тільки registration token, а голий FID відхиляється. Як це виглядає — у каталозі помилок.
Повторна реєстрація
Реєстрація того самого installation id під іншим externalUserId перепривʼязує його — саме завдяки цьому працює вихід і повторний вхід.
Під тим самим користувачем оновлюються платформа, підписка та last_seen_at, а інсталяція реактивується.
Беріть ID і токен незалежно
Якщо getToken() кидає виняток — а на iOS він робить це регулярно, доки не прийде APNs-токен — спільний try/catch поверне також порожній installation id. Виклики, які без ID пропускають реєстрацію, не надсилають нічого, і збій виглядає так, ніби застосунок не запускався.
Відсутній токен коштує доставки. Він не має коштувати ще й реєстрації.