Partager via


Migration de Google Firebase Cloud Messaging à l’aide de l’API REST et du portail Azure

Cet article décrit les principales fonctionnalités pour l’intégration d’Azure Notification Hubs à Firebase Cloud Messaging (FCM) v1. Pour rappel, Google cessera de prendre en charge l’ancien HTTP FCM le 20 juin 2024. Vous devez donc migrer vos applications et vos charges utiles de notification vers le nouveau format avant cette date. Toutes les méthodes d’intégration seront prêtes pour la migration d’ici le 1er mars 2024.

Important

Depuis juin 2024, les API FCM héritées ne seront plus prises en charge et seront supprimées. Pour éviter toute interruption dans votre service de notification Push, vous devez migrer vers le protocole FCM v1 dès que possible.

Concepts pour FCM v1

  • Un nouveau type de plateforme est pris en charge, appelé FCM v1.
  • Les nouvelles API, informations d’identification, inscriptions et installations sont utilisées pour FCM v1.

Remarque

La plate-forme FCM existante est appelée ancien FCM dans cet article.

Étapes de la migration

L’ancienne API Firebase Cloud Messaging (FCM) sera obsolète à compter de juillet 2024. Vous pourrez commencer la migration de l’ancien protocole HTTP vers FCM v1 le 1er mars 2024. Vous devez terminer la migration d’ici juin 2024. Cette section décrit les étapes à suivre pour migrer de l’hérité FCM vers FCM v1 à l’aide de l’API REST Notification Hubs.

API REST

La section suivante explique comment effectuer la migration à l’aide de l’API REST.

Étape 1 : Ajouter des informations d’identification FCM v1 au hub

La première étape consiste à ajouter des informations d’identification via le portail Azure, une opération hub de plan de gestion ou une opération de hub de plan de données.

Créer un fichier JSON de compte de service Google

  1. Dans la console Firebase, sélectionnez votre projet et accédez à paramètres du projet.

  2. Sélectionnez l’onglet comptes de service, créez un compte de service et générez une clé privée à partir de votre compte de service Google.

  3. Sélectionnez Générer une nouvelle clé privée pour générer un fichier JSON. Téléchargez et ouvrez le fichier. Remplacez les valeurs de project_id, private_keyet client_email, car celles-ci sont requises pour les mises à jour des informations d’identification du hub Azure Notification Hubs.

    Capture d’écran des paramètres du projet de console Firebase.

    OR

    Si vous souhaitez créer un compte de service avec une autorisation d’accès personnalisée, vous pouvez créer un compte de service via la page comptes de service > IAM & Admin. Accédez directement à la page en cliquant sur Gérer les autorisations de compte de service. Vous pouvez créer un compte de service avec l’un des rôles suivants :

    • Administrateur Firebase (roles/firebase.admin)
    • Administrateur Firebase Grow (roles/firebase.growthAdmin)
    • Agent de service d’administrateur du kit de développement logiciel (SDK) d’administration Firebase (roles/firebase.sdkAdminServiceAgent)
    • Agent du service d’approvisionnement du kit de développement logiciel (SDK) Firebase (roles/firebase.sdkProvisioningServiceAgent)

    Capture d’écran des paramètres du compte de service IAM.

Option 1 : Mettre à jour les informations d’identification FcmV1 via le portail Azure

Accédez à votre hub de notification sur le portail Azure, puis sélectionnez Paramètres > Google (FCM v1). Obtenez les valeurs clé privée, ID de projetet e-mail client du fichier JSON du compte de service acquis à partir de la section précédente, puis enregistrez-les pour une utilisation ultérieure.

Capture d’écran des options d’informations d’identification Firebase du portail Azure.

Option 2 : Mettre à jour les informations d’identification FcmV1 via l’opération hub du plan de gestion

Consultez la description d’un FcmV1Credential NotificationHub.

  • Utilisez l’API version 2023-10-01-preview

  • FcmV1CredentialProperties:

    Nom Type
    clientEmail string
    privateKey string
    projectId string

Option 3 : Mettre à jour les informations d’identification FcmV1 via l’opération hub de plan de données

Consultez Créer un hub de notification et Mettre à jour un hub de notification.

  • Utiliser la version de l’API : 2015-01
  • Veillez à placer FcmV1Credential après GcmCredential, car l’ordre est important.

Par exemple, voici le corps de la requête :

<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>

Étape 2 : Gérer l’inscription et l’installation

Pour les scénarios d’envoi direct, passez directement à l’étape 3. Si vous utilisez l’un des kits de développement logiciel (SDK) Azure, consultez l’article Kit de développement logiciel (SDK).

Option 1 : Créer une inscription FCM v1 ou mettre à jour l’inscription GCM vers FCM v1

Si vous disposez d’une inscription GCM existante, mettez à jour l’inscription pour FcmV1Registration. Consultez Créer ou mettre à jour une inscription. Si vous n’avez pas de GcmRegistrationexistante, créez une inscription en tant que FcmV1Registration. Consultez Créer une inscription. Le corps de la demande d’inscription doit apparaître comme dans l’exemple suivant :

// 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>

Option 2 : Créer une installation FCM c1 ou mettre à jour l’installation de GCM vers FCM v1

Consultez Créer ou remplacer une installation et définir platform sur FCMV1.

Étape 3 : Envoyer une notification Push

Option 1 : Déboguer l’envoi

Utilisez cette procédure pour tester les notifications avant l’option 2, 3 ou 4. Consultez Notification Hubs - Déboguer l'envoi.

Remarque

Utilisez la version d’API : 2023-10-01-preview.

Dans l’en-tête :

En-tête de requête Valeur
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format Définir sur fcmV1 ou template
Servicebusnotification-Tags {identificateur de balise unique}

Testez une charge utile avec la structure suivante via l’envoi de débogage. Notez que FcmV1 introduit un changement significatif dans la structure de la charge utile du message JSON :

  1. Charge utile entière déplacée sous un objet de message.
  2. Les options spécifiques à Android déplacées vers l’objet Android et time_to_live est désormais ttl avec une valeur de chaîne.
  3. Le champ data autorise désormais uniquement un mappage de chaîne à chaîne plate.
  4. Pour plus d’informations, consultez la référence FCM.

Vous pouvez également effectuer un test d’envoi (envoi de débogage) via le portail Azure :

Capture d’écran de la page d’envoi de test du portail Azure.

Option 2 : Envoi direct

Effectuez un envoi direct. Dans l’en-tête de requête, définissez ServiceBusNotification-Format sur fcmV1.

Option 3 : Notification native FcmV1 (envoi d’audience)

Effectuez un envoi de notification native FcmV1. Consultez Envoyer une notification native Google Cloud Messaging (GCM). Dans l’en-tête de requête, définissez ServiceBusNotification-Format sur fcmV1. Par exemple, dans le corps de la requête :

{ 
  "message": { 
    "notification": {  
        "title": "Breaking News",  
        "body": "FcmV1 is ready."  
        }, 
    "android": {  
        "data": {  
            "name": "wrench",  
            "mass": "1.3kg",  
            "count": "3"  
            }  
        } 
    } 
}

Option 4 : notification de modèle

Vous pouvez tester les envois de modèles avec un nouveau corps de requête suivant la nouvelle structure de charge utile JSON. Aucune autre modification n’a besoin d’être apportée. Consultez Envoyer une notification de modèle.

Étapes suivantes

Migration de Firebase Cloud Messaging à l’aide de kits de développement logiciel (SDK) Azure