Миграция Google Firebase Cloud Messaging с помощью REST API и портал Azure
В этой статье описаны основные возможности интеграции Центров уведомлений Azure с Firebase Cloud Messaging версии 1. Как напоминание, Google перестанет поддерживать устаревший ПРОТОКОЛ HTTP FCM 20 июня 2024 года, поэтому перед этим необходимо перенести приложения и полезные данные уведомлений в новый формат. Все методы подключения будут готовы к миграции к 1 марта 2024 г.
Внимание
По состоянию на июнь 2024 года устаревшие API FCM больше не будут поддерживаться и будут прекращены. Чтобы избежать сбоев в службе push-уведомлений, необходимо как можно скорее перейти к протоколу FCM версии 1.
Основные понятия для FCM версии 1
- Поддерживается новый тип платформы с именем FCM версии 1.
- Для FCM версии 1 используются новые API, учетные данные, регистрации и установки.
Примечание.
Существующая платформа FCM называется устаревшей версией FCM в этой статье.
Шаги миграции
Устаревший API Cloud Messaging (FCM) Firebase будет устарел к июля 2024 года. Вы можете начать миграцию с устаревшего протокола HTTP на FCM версии 1 1 марта 2024 г. К июню 2024 г. необходимо завершить миграцию. В этом разделе описаны шаги по миграции из устаревшей версии FCM в FCM версии 1 с помощью REST API центров уведомлений.
REST API
В следующем разделе описывается, как выполнить миграцию с помощью REST API.
Шаг 1. Добавление учетных данных FCM версии 1 в концентратор
Первым шагом является добавление учетных данных с помощью портал Azure, операции концентратора управления или концентратора плоскости данных.
Создание JSON-файла учетной записи службы Google
В консоли Firebase выберите проект и перейдите к параметрам проекта.
Перейдите на вкладку "Учетные записи службы", создайте учетную запись службы и создайте закрытый ключ из учетной записи службы Google.
Выберите " Создать новый закрытый ключ" , чтобы создать JSON-файл. Скачайте и откройте файл. Замените значения для
project_id
учетныхprivate_key
данных центра уведомлений Azure иclient_email
, так как они необходимы для обновления учетных данных центра уведомлений Azure.ИЛИ
Если вы хотите создать учетную запись службы с настраиваемым разрешением на доступ, можно создать учетную запись службы с помощью страницы учетных записей службы IAM и администраторов>. Перейдите на страницу непосредственно, щелкнув "Управление разрешениями учетной записи службы". Вы можете создать учетную запись службы с одной из следующих ролей:
- Администратор Firebase (role/firebase.admin)
- Администратор Firebase Grow (role/firebase.growthAdmin)
- Агент службы администратора администратора Firebase admin (role/firebase.sdkAdminServiceAgent)
- Агент службы подготовки пакета SDK Firebase (role/firebase.sdkProvisioningServiceAgent)
Вариант 1. Обновление учетных данных FcmV1 с помощью портал Azure
Перейдите в центр уведомлений на портал Azure и выберите "Параметры > Google" (FCM версии 1). Получите значения закрытого ключа, идентификатора проекта и электронной почты клиента из JSON-файла учетной записи службы, полученного из предыдущего раздела, и сохраните их для последующего использования.
Вариант 2. Обновление учетных данных FcmV1 с помощью операции концентратора плоскости управления
См. описание FcmV1Credential в NotificationHub.
Использование ВЕРСИИ API: 2023-10-01-preview
FcmV1CredentialProperties:
Имя. Тип clientEmail
строка privateKey
строка projectId
строка
Вариант 3. Обновление учетных данных FcmV1 с помощью операции концентратора плоскости данных
См. статью "Создание концентратора уведомлений" и "Обновление концентратора уведомлений".
- Использование ВЕРСИИ API: 2015-01
- Не забудьте поместить FcmV1Credential после GcmCredential, так как порядок важен.
Например, ниже приведен текст запроса:
<NotificationHubDescription xmlns:i='http://www.w3.org/2001/XMLSchema-instance'
xmlns='http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'>
<ApnsCredential>
<Properties>
<Property>
<Name>Endpoint</Name>
<Value>{_apnsCredential.Endpoint}</Value>
</Property>
<Property>
<Name>AppId</Name>
<Value>{_apnsCredential.AppId}</Value>
</Property>
<Property>
<Name>AppName</Name>
<Value>{_apnsCredential.AppName}</Value>
</Property>
<Property>
<Name>KeyId</Name>
<Value>{_apnsCredential.KeyId}</Value>
</Property>
<Property>
<Name>Token</Name>
<Value>{_apnsCredential.Token}</Value>
</Property>
</Properties>
</ApnsCredential>
<WnsCredential>
<Properties>
<Property>
<Name>PackageSid</Name>
<Value>{_wnsCredential.PackageSid}</Value>
</Property>
<Property>
<Name>SecretKey</Name>
<Value>{_wnsCredential.SecretKey}</Value>
</Property>
</Properties>
</WnsCredential>
<GcmCredential>
<Properties>
<Property>
<Name>GoogleApiKey</Name>
<Value>{_gcmCredential.GoogleApiKey}</Value>
</Property>
</Properties>
</GcmCredential>
<FcmV1Credential>
<Properties>
<Property>
<Name>ProjectId</Name>
<Value>{_fcmV1Credential.ProjectId}</Value>
</Property>
<Property>
<Name>PrivateKey</Name>
<Value>{_fcmV1Credential.PrivateKey}</Value>
</Property>
<Property>
<Name>ClientEmail</Name>
<Value>{_fcmV1Credential.ClientEmail}</Value>
</Property>
</Properties>
</FcmV1Credential>
</NotificationHubDescription>
Шаг 2. Управление регистрацией и установкой
Для сценариев прямого отправки перейдите непосредственно к шагу 3. Если вы используете один из пакетов SDK Azure, ознакомьтесь со статьей о пакетах SDK.
Вариант 1. Создание регистрации FCM версии 1 или обновление регистрации GCM до FCM версии 1
Если у вас есть существующая регистрация GCM, обновите регистрацию до FcmV1Registration. См. статью "Создание или обновление регистрации". Если у вас нет существующей GcmRegistration, создайте новую регистрацию в качестве FcmV1Registration. См. статью "Создание регистрации". Текст запроса регистрации должен отображаться в следующем примере:
// FcmV1Registration
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<FcmV1RegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<Tags>myTag, myOtherTag</Tags>
<FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
</FcmV1RegistrationDescription>
</content>
</entry>
// FcmV1TemplateRegistration
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
<content type="application/xml">
<FcmV1TemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
<Tags>myTag, myOtherTag</Tags>
<FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
<BodyTemplate><![CDATA[ {BodyTemplate}]]></BodyTemplate>
</FcmV1TemplateRegistrationDescription>
</content>
</entry>
Вариант 2. Создание установки FCM V1 или обновление установки GCM до FCM версии 1
См. статью "Создание или перезапись установки и установка platform
FCMV1
".
Шаг 3. Отправка push-уведомления
Вариант 1. Отладка отправки
Используйте эту процедуру для тестирования уведомлений до варианта 2, 3 или 4. См. статью "Центры уведомлений— отладка отправки".
Примечание.
Используйте версию API: 2023-10-01-preview.
В заголовке:
Заголовок запроса | Значение |
---|---|
Content-Type |
application/json;charset=utf-8 |
ServiceBusNotification-Format |
fcmV1 Установка илиtemplate |
Servicebusnotification-Tags |
{идентификатор одного тега} |
Проверьте полезные данные со следующей структурой с помощью отладочной отправки. Обратите внимание, что FcmV1 представляет значительное изменение структуры полезных данных сообщения JSON:
- Все полезные данные перемещаются под объектом сообщения.
- Параметры, относящиеся к Android, перемещены в объект Android и
time_to_live
теперьttl
имеют строковое значение. - Теперь
data
поле разрешает только неструктурированное сопоставление строк с строкой. - Дополнительные сведения см . в справочнике по FCM.
Кроме того, можно выполнить тестовую отправку (отладочную отправку) с помощью портал Azure:
Вариант 2. Прямая отправка
Выполните прямую отправку. В заголовке запроса задайте значение ServiceBusNotification-Format
fcmV1
.
Вариант 3. Собственное уведомление FcmV1 (отправка аудитории)
Выполните отправку собственных уведомлений FcmV1. Ознакомьтесь с собственным уведомлением Google Cloud Messaging (GCM). В заголовке запроса задайте значение ServiceBusNotification-Format
fcmV1
. Например, в тексте запроса:
{
"message": {
"notification": {
"title": "Breaking News",
"body": "FcmV1 is ready."
},
"android": {
"data": {
"name": "wrench",
"mass": "1.3kg",
"count": "3"
}
}
}
}
Вариант 4. Уведомление о шаблоне
Вы можете протестировать отправку шаблона с новым текстом запроса после новой структуры полезных данных JSON. Никаких других изменений не требуется вносить. См. статью "Отправить уведомление о шаблоне".
Следующие шаги
Миграция Firebase Cloud Messaging с помощью пакетов SDK Azure