Migrazione di Google Firebase Cloud Messaging tramite l'API REST e l'portale di Azure
Questo articolo descrive le funzionalità di base per l'integrazione di Hub di notifica di Azure con Firebase Cloud Messaging (FCM) v1. Come promemoria, Google smetterà di supportare HTTP legacy FCM il 20 giugno 2024, quindi è necessario eseguire la migrazione delle applicazioni e dei payload di notifica al nuovo formato prima di allora. Tutti i metodi di onboarding saranno pronti per la migrazione entro il 1° marzo 2024.
Importante
A partire da giugno 2024, le API legacy FCM non saranno più supportate e verranno ritirati. Per evitare interruzioni nel servizio di notifica push, è necessario eseguire la migrazione al protocollo FCM v1 il prima possibile.
Concetti relativi a FCM v1
- È supportato un nuovo tipo di piattaforma, denominato FCM v1.
- Le nuove API, le credenziali, le registrazioni e le installazioni vengono usate per FCM v1.
Nota
La piattaforma FCM esistente viene definita legacy FCM in questo articolo.
Passaggi per la migrazione
L'API legacy Firebase Cloud Messaging (FCM) sarà deprecata entro luglio 2024. È possibile iniziare la migrazione dal protocollo HTTP legacy a FCM v1 il 1° marzo 2024. È necessario completare la migrazione entro giugno 2024. Questa sezione descrive i passaggi per eseguire la migrazione da FCM legacy a FCM v1 usando l'API REST di Hub di notifica.
REST API
La sezione seguente descrive come eseguire la migrazione usando l'API REST.
Passaggio 1: Aggiungere credenziali FCM v1 all'hub
Il primo passaggio consiste nell'aggiungere credenziali tramite l'portale di Azure, un'operazione dell'hub del piano di gestione o un'operazione dell'hub del piano dati.
Creare un file JSON dell'account del servizio Google
Nella console firebase selezionare il progetto e passare a Impostazioni progetto.
Selezionare la scheda Account di servizio , creare un account del servizio e generare una chiave privata dall'account del servizio Google.
Selezionare Genera nuova chiave privata per generare un file JSON. Scaricare e aprire il file. Sostituire i valori per
project_id
,private_key
eclient_email
, perché sono necessari per gli aggiornamenti delle credenziali dell'hub di notifica di Azure.OPPURE
Se si vuole creare un account del servizio con autorizzazioni di accesso personalizzate, è possibile creare un account di servizio tramite la pagina Account di servizio IAM & Amministrazione>. Passare direttamente alla pagina facendo clic su Gestisci autorizzazioni dell'account del servizio. È possibile creare un account del servizio con uno dei ruoli seguenti:
- Amministrazione Firebase (roles/firebase.admin)
- Firebase Grow Amministrazione (roles/firebase.growth Amministrazione)
- Agente del servizio Firebase Amministrazione SDK Amministrazione istrator (roles/firebase.sdk Amministrazione ServiceAgent)
- Agente del servizio di provisioning di Firebase SDK (roles/firebase.sdkProvisioningServiceAgent)
Opzione 1: Aggiornare le credenziali FcmV1 tramite il portale di Azure
Passare all'hub di notifica nel portale di Azure e selezionare Impostazioni > Google (FCM v1). Ottenere i valori Chiave privata, ID progetto e Posta elettronica client dal file JSON dell'account del servizio acquisito dalla sezione precedente e salvarli per usarli in un secondo momento.
Opzione 2: Aggiornare le credenziali FcmV1 tramite l'operazione dell'hub del piano di gestione
Vedere la descrizione di un oggetto NotificationHub FcmV1Credential.
Usare la versione API: 2023-10-01-preview
FcmV1CredentialProperties:
Nome Type clientEmail
string privateKey
string projectId
string
Opzione 3: Aggiornare le credenziali FcmV1 tramite l'operazione dell'hub del piano dati
Vedere Creare un hub di notifica e Aggiornare un hub di notifica.
- Usare la versione API: 2015-01
- Assicurarsi di inserire FcmV1Credential dopo GcmCredential, perché l'ordine è importante.
Ad esempio, il corpo della richiesta è il seguente:
<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>
Passaggio 2: Gestire la registrazione e l'installazione
Per gli scenari di invio diretto, procedere direttamente al passaggio 3. Se si usa uno degli SDK di Azure, vedere l'articolo SDK.
Opzione 1: Creare la registrazione FCM v1 o aggiornare la registrazione GCM in FCM v1
Se si dispone di una registrazione GCM esistente, aggiornare la registrazione a FcmV1Registration. Vedere Creare o aggiornare una registrazione. Se non si dispone di un GcmRegistration esistente, creare una nuova registrazione come FcmV1Registration. Vedere Creare una registrazione. Il corpo della richiesta di registrazione dovrebbe essere visualizzato come nell'esempio seguente:
// 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>
Opzione 2: Creare l'installazione di FCM c1 o aggiornare l'installazione di GCM in FCM v1
Vedere Creare o sovrascrivere un'installazione e impostare su platform
FCMV1
.
Passaggio 3: Inviare una notifica push
Opzione 1: Eseguire il debug dell'invio
Utilizzare questa procedura per testare le notifiche prima dell'opzione 2, 3 o 4. Vedere Hub di notifica - Invio di debug.
Nota
Usare la versione API: 2023-10-01-preview.
Nell'intestazione:
Intestazione della richiesta | Valore |
---|---|
Content-Type |
application/json;charset=utf-8 |
ServiceBusNotification-Format |
Impostare su fcmV1 o template |
Servicebusnotification-Tags |
{identificatore di tag singolo} |
Testare un payload con la struttura seguente tramite l'invio di debug. Si noti che FcmV1 introduce una modifica significativa nella strutturazione del payload del messaggio JSON:
- L'intero payload è stato spostato in un oggetto messaggio.
- Le opzioni specifiche di Android sono state spostate nell'oggetto Android ed
time_to_live
è orattl
con un valore stringa. - Il
data
campo consente ora solo un mapping di stringhe a stringa flat. - Per altre informazioni, vedere le informazioni di riferimento su FCM.
In alternativa, è possibile eseguire un invio di test (invio di debug) tramite il portale di Azure:
Opzione 2: Invio diretto
Eseguire un invio diretto. Nell'intestazione della richiesta impostare su ServiceBusNotification-Format
fcmV1
.
Opzione 3: Notifica nativa FcmV1 (invio destinatari)
Eseguire un invio di notifica nativa FcmV1. Vedere Inviare una notifica nativa di Google Cloud Messaging (GCM). Nell'intestazione della richiesta impostare su ServiceBusNotification-Format
fcmV1
. Ad esempio, nel corpo della richiesta:
{
"message": {
"notification": {
"title": "Breaking News",
"body": "FcmV1 is ready."
},
"android": {
"data": {
"name": "wrench",
"mass": "1.3kg",
"count": "3"
}
}
}
}
Opzione 4: notifica del modello
È possibile testare gli invii di modelli con un nuovo corpo della richiesta dopo la nuova struttura del payload JSON. Non è necessario apportare altre modifiche. Vedere Inviare una notifica modello.