Миграция с OneSignal
Шаг 1. Получение VAPID ключей с сервиса OneSignal
Пропустите этот шаг, если вы переносите подписки, настроенные для браузера Safari.
Запросите ключи у технической поддержки сервиса OneSignal. Необхо димы как приватный, так и публичный ключи: private key, public key.
Обратите внимание, что VAPID keys и Application Server keys— это одно и то же.
Шаг 2. Импорт в Firebase проект VAPID ключей
Пропустите этот шаг, если вы переносите подписки, настроенные для браузера Safari.
Зайдите в настройки проекта в Firebase и перейдите на вкладку Cloud Messaging. Внизу страницы вы увидите раздел Web Configuration. Здесь вы можете сгенерировать ключи самостоятельно, но нам это не нужно, поскольку вы уже получили VAPID ключи у своего сервиса. Кликните "import an existing key pair" в самом низу раздела.
В поя вившемся окне введите Public key и Private key, которые ранее предоставил вам OneSignal.
Шаг 3. Настройка ресурса
О настройке ресурса для Web push уведомлений читайте в разделе Web push: настройка и подключение.
Обратите внимание, что настройка ресурса отличаются у разных браузеров.
Шаг 4. Экспорт подписок
Экспорт подписок предполагает создание CSV файла, который будет содержать все ваши текущие данные о пользователях.
Используйте утилиту Curl, чтобы сделать POST запрос. Запрос сгенерирует URL, по которому вы сможете скачать сжатый CSV файл (.csv .gz).
Создание файла может занять несколько минут в зависимости от количества ваших пользователей.
Вы можете проверить, завершен ли процесс создания файла, отправив GET-запрос, в котором в качестве параметра будет передано значение csv_file_url
.
Если файл еще не готов, будет возвращена ошибка 403. В противном случае будет возвращен сам файл.
Ниже приведен пример запроса, который можно запустить в терминале.
curl -X POST -H "Authorization: Basic YOUR_REST_API_KEY" -H "Content-Type: application/json" -d '{
"extra_fields": ["web_auth", "web_p256"],
"last_active_since": "1469392779", "segment_name": "Active Users"
}' "https://onesignal.com/api/v1/players/csv_export?app_id=YOUR_APP_ID"
Здесь необходимо указать ваши REST_API_Key и APP_ID. Эти данные вы можете найти на сервисе OneSignal. Зайдите в Settings и перейдите на вкладку Keys & IDs.
В теле запроса необходимо передать следующие параметры:
Поле | Значение |
---|---|
"extra_fields" | Дополнительные поля, которые вам необходимы. На данный момент доступны: location, country, rooted, notification_types, ip, external_user_id, web_auth, web_p256. В нашем случае обязательно надо указать web_auth и web_p256 . |
"last_active_since" | Экспортировать все устройства, у которых значение поля last_active больше указанной временной отметки timestamp. |
"segment_name" | Экспортировать все устройства, которые относят к указанному сегменту. Вы можете использовать это поле, чтобы экспортировать только интересующие вас сегменты. Подробнее о сегментах в OneSignal: https://documentation.onesignal.com/docs/segmentation. |
Более подробную информацию об экспорте подписок с сервиса OneSignal вы можете получить здесь: https://documentation.onesignal.com/reference/csv-export.
Шаг 5. Передача csv файла с полями администратору или службе поддержки Altcraft
Пропустите этот шаг, если вы переносите подписки, настроенные для браузера Safari.
Если плафторма Altcraft установлена в контур вашей компании, то передайте созданный csv файл с подписками администратору платформы.
Если платформа установлена на облаке, то передайте csv файл в службу поддержки Altcraft.
Шаг 6. Получение обработанного csv файла у администратора
Пропустите этот шаг, если вы переносите подписки, настроенные для браузера Safari.
Шаг 7. Импорт профилей
Теперь вы можете импортировать профили в Базы профилей из csv файла, при этом создавая подписку на нужный провайдер.
Кроме того, у вас есть возможность выполнить обновление базы с созданием подписки на этот же провайдер. Обратите внимание, в данном случае это обязательно должен быть один из Firebase провайдеров.
Идентификатор провайдера позволяет узнать, к какому именно браузеру относится подписка и через какой сервис она создавалась. Примеры провайдеров: Chrome Firebase, Apple Safari, Mozilla Firefox.
Итак, создайте или выберите подходящую базу и в выпадающем списке кликните Импорт профилей клиентов.
Выберите способ импорта — Файл. Загрузите необходимый csv файл с подписками.
Кликните Режим поиска подписки и в выпадающем списке выберите Поиск по пуш подписке.
Если в вашем csv файле есть какие-то данные, которые можно использовать, чтобы настроить соответствия между профилями ("сматчить пользователей"), то при импорте выберите соответствующий режим поиска профиля.
Нажмите на кнопку Добавить подписку. Затем настройте подписку:
- Канал — Push канал;
- Провайдер — браузер, через который осуществлена подписка. Если пользователь подписался через браузер Safari, то укажите Apple Safari.Если браузер подписки неизвестен, то можно импортировать подписки с провайдером Chrome Firebase.
- Источник подписки — поле идентификатора подписки из csv файла. Если пользователь подписался через браузер Safari, то вам необходимо определить данное поле самостоятельно. Для других бразуеров здесь необходимо указать firebase_push_token.
Для создания подписки необходимо название поля, где хранится id той подписки, которую вы импортируете. В нашем csv файле такое поле будет называться firebase_push_token
.
Теперь необходимо настроить соответствие колонок:
Поле | Для браузеров Safari | Для остальных браузеров |
SubscriptionID | Поле идентификатора подписки из csv файла | firebase_push_token |
Provider | Если в csv файле отсутствует поле идентификатора провайдера Altcraft, то укажите то же поле, что и в SubscriptionID. Таким образом для каждой подписки будет создан новый подписчик. |
В поле Пропустить строк укажите значение "1". В противном случае, при импорте будут захватываться заголовки.
После того, как вы нажмете кнопку Импортировать в правом верхнем углу экрана, начнется процесс импорта новых профилей в Базу данных.
Как только профили будут успешно импортированы, вы можете посмотреть их в выбранной вами Базе профилей. Открыв вкладку Подписки, вы увидите новую подписку профиля на push уведомления и информацию о ней.