Обработка и добавление подписки
При получении push токена приложение должно передать его в Altcraft Platform для формирования подписки. Для этого используется API запрос.
С помощью этого запроса можно:
- Добавить новые подписки.
- Поменять статус уже существующих подписок.
Режим поиска профиля можно задавать с помощью поля matching в запросе (см. спецификацию ниже). Если профиль не будет найден, то будет создан новый.
При этом, если в ресурсе указано несколько баз данных, то все они будут обрабатываться по отдельности. Запрос к такому ресурсу будет создавать и обновлять профили сразу в нескольких базах. Пример такого случая можно посмотреть ниже.
Если в ресурсе нет ни одной базы, то будет возвращена ошибка.
URL-адрес
Метод: POST
https://<cookiesaver_host>/push_subscribe
Параметры запроса
| Параметр | Тип | Пример | Обязательный | Описание |
|---|---|---|---|---|
| id | string | "abcdefghijklmnqrstuvwxyz" | Нет | Идентификатор профиля |
| resource_token | string | "abcdefghijklmnqrstuvwxyz" | Да | Уникальный идентификатор ресурса |
| db_ids | [ ] int | [ 2,3 ] | Нет | Фильтр баз данных ресурса. |
| matching | string | "custom" | Нет | Режим поиска подписчика. Если поле не передано или пустое, то будет использован поиск профиля по id или, если id тоже не передано, по пуш подпискам. Для push_subscribe метода это поле может принимать только следующие значения:
|
| subscriptions | JSON array SubscriptionObject | [{ | Да | Подписки на push, которые нужно добавить в профиль или обновить. "subscription_id" — уникален для каждого устройства. |
SubscriptionObject
| Параметр | Тип | Пример | Обязательный | Описание |
|---|---|---|---|---|
| provider | string | "android-firebase" | Да | Идентификатор провайдера в Altcraft MP. Возможны следующие значения:
Каждому типу токена в AppMetrica соответствует свой id провайдера. |
| subscription_id | string | "abcdef-ghijklmn-qrstuvwxyz" | Да | Токен push подписки |
| unsubscribe | bool | false | Нет | Флаг отписки. Отменяет подписку, если true. |
Возвращаемые параметры
| Параметр | Тип | Описание |
|---|---|---|
| data | JSON array DataObject | Информация о созданных подписках. В массиве может быть несколько объектов в следующих случаях:
|
| error | int | Код ошибки |
| error_text | string | Текст ошибки |
DataObject
| Параметр | Тип | Описание | |
|---|---|---|---|
| subscription_id | string | "abcdef-ghijklmn-qrstuvwxyz" | Токен push подписки |
| unsubscribe | bool | false | Флаг, была ли подписка добавлена или наоборот отменена |
| profile_id | string | "5fb62e815ae47a4aa04dfadd" | id профиля (переданный или вновь созданный), для которого добавлена подписка. |
| provider | string | "android-firebase" | Идентификатор провайдера в Altcraft MP. Возможны следующие значения:
Каждому типу токена в AppMetrica соответствует свой id провайдера |
| db_id | int | 2 | id базы данных в Altcraft MP, в которой находится профиль |
| resource_id | int | 1 | id ресурса в Altcraft MP |
| subscription_hash_id | string | "92807e89" | Хеш подписки |
| status | string | "error" | Статус операции
|
| description | string | "Duplicate push subscription" | Описание ошибки |