Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 ha smesso di supportare HTTP legacy FCM il 20 giugno 2024, quindi è necessario eseguire la migrazione delle applicazioni e dei payload di notifica al nuovo formato.
Importante
A partire da giugno 2024, le API legacy FCM non sono più supportate e quindi vengono ritirate. Per evitare interruzioni nel servizio di notifica push, è necessario eseguire la migrazione al protocollo FCM v1.
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) verrà deprecata a luglio 2024. È possibile iniziare la migrazione dal protocollo HTTP legacy a FCM v1. 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 (Interfaccia di Programmazione delle Applicazioni REST)
La sezione seguente descrive come eseguire la migrazione usando l'API REST.
Passaggio 1: aggiungere le 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 del servizio tramite la > Account del servizio IAM e amministratore. Passare direttamente alla pagina facendo clic su Gestisci autorizzazioni dell'account del servizio. È possibile creare un account del servizio con uno dei ruoli seguenti:
- Amministratore di Firebase (roles/firebase.admin)
- Firebase Grow Admin (roles/firebase.growthAdmin)
- Agente del servizio amministratore di Firebase Admin SDK (roles/firebase.sdkAdminServiceAgent)
- 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 operazione del piano di gestione dell'hub.
Vedere la descrizione di un oggetto NotificationHub FcmV1Credential.
Usare la versione API: 2023-10-01-preview
FcmV1CredentialProperties:
Nome TIPO clientEmail
corda privateKey
corda projectId
corda
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 V1 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: debug send
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.