IBM Cloud Docs
Créer et envoyer des notifications push à Android mobile en utilisant Event Notifications

Créer et envoyer des notifications push à Android mobile en utilisant Event Notifications

Créez un service Event Notifications, ajoutez une destination push pour Firebase Cloud Messaging (FCM) et envoyez des messages à des périphériques Android.

Qu'est-ce qu'Event Notifications ?

Event Notifications est un service de routage de notification d'événements qui vous informe des événements critiques qui se produisent dans votre compte IBM Cloud ou qui déclenche des actions automatisées en utilisant des webhooks. Vous pouvez filtrer et acheminer les notifications d'événements provenant de services IBM Cloud tels que Availability Monitoring, vers des courriels, des SMS, des notifications push et des webhooks.

Comment les clients utilisent les notifications Push Android ?

Le diagramme suivant montre comment les clients utilisent les notifications Push Android.

Comment les clients utilisent les
les clients utilisent les
push*

Objectifs

Ce tutoriel explique comment envoyer des notifications push comme suit :

  • Créez une application mobile avec Event Notifications.
  • Obtenez les données d'identification FCM.
  • Téléchargez le code et effectuez la configuration des notifications.
  • Configurez et envoyez des notifications Push Android à un périphérique mobile.

Avant de commencer

Vous devez disposer des prérequis suivants :

  • Téléchargez et installez Android Studio pour pouvoir importer et améliorer votre code.
  • Un compte Google permettant de se connecter à la console Firebase pour obtenir vos project_id, private_key et client_email.
  • Un compte IBM Cloud. Si vous n'en avez pas, créez un compte IBM Cloud.

Les instructions utilisées dans le présent document font appel à l'API HTTP v1 de la FCM. L'API HTTP v1 présente des avantages tels que des jetons d'accès sécurisés, des personnalisations efficaces et des versions de plateforme client évolutives et plus extensibles. Pour plus d'informations sur la migration de l'ancienne API HTTP du FCM vers l'API HTTP v1, voir Migration de l'ancienne API HTTP du FCM vers l'API HTTP v1.

Création d'une instance de service Event Notifications

  • Connectez-vous à votre compteIBM Cloud
  • Dans le catalogueIBM Cloud, recherchez et sélectionnez Event Notifications > Event Notifications.
  • Sélectionnez une Region dans la liste des régions prises en charge et sélectionnez une pricing plan.
  • Fournissez un Service name.
  • Sélectionner resource group.
  • Acceptez les contrats de licence et les dispositions en cochant la case.
  • Cliquez sur Create.

Obtenir les données d'identification FCM

Firebase Cloud Messaging (FCM) est la passerelle qui envoie des notifications push aux périphériques Android. Pour configurer la destination Android Push sur la console, vous devez obtenir vos identifiants FCM 'project_id, 'private_key et 'client_email.

  • Accédez à la console Firebase. Un compte utilisateur Google est requis.

  • Cliquez sur Create a project. Si vous avez déjà un projet, cliquez sur Add Project.

  • Dans Create a project window, entrez un nom de projet, acceptez les termes et activez ou désactivez l'analyse Google (facultatif) en sélectionnant le commutateur à bascule et cliquez sur Continue.

  • Si l'analyse Google est activée, dans la fenêtre Configure Google Analytics, choisissez Analytics location et acceptez les termes.

  • Cliquez sur Create Project.

  • Cliquez sur Continue lorsque le nouveau projet est prêt.

  • Dans le panneau de navigation, sélectionnez l'icône settings en regard de Project Overview et sélectionnez Settings > Project settings.

  • Cliquez sur l'onglet " Service Accounts.

    de la FCM* Références de la FCM* Références
    la FCM*

  • Cliquez sur Générer une nouvelle clé privée pour générer vos données d'identification de projet. Le fichier téléchargé contient: project_id, private_key et client_email.

Générer google-services.json

Vous devez également générer le fichier google-services.json. Procédez comme suit :

  • Dans la section Présentation du projet de console Firebase, sous Get started by adding Firebase to your app, cliquez sur l'icône Android.

    Démarrage de
    Démarrage de Firebase* Démarrage de

  • Dans la fenêtre Add Firebase to your Android app, ajoutez com.ibm.cloud.eventnotifications.destination.android comme nom de package. La zone App nickname est facultative.

  • Cliquez sur Register APP.

    Ajoutez Firebase à votre application
    Firebase à votre
    Android*

  • Incluez le nom du package de votre application. Entrez le nom du package dans la fenêtre Add Firebase to your Android app. La zone App nickname est facultative.

  • Cliquez sur Register APP. Voir l'exemple suivant :

    Enregistrer l'
    l'application

  • Le fichier google-services.json est généré.

  • Téléchargez le dernier fichier de configuration google-services.json sous Vos applications.

Ajouter une source d'API générique

Suivez ces étapes :

  • Accédez à la section Sources du tableau de bord Event Notifications.
  • Cliquez sur Add et sélectionnez une source d'API.
  • Entrez un nom et une description facultative, puis cliquez sur Add.

Créer une destination Event Notifications

Cliquez sur Destinations dans la console Event Notifications et ajoutez les détails de destination suivants :

  • Name : ajoutez un nom pour la destination.
  • Description : ajoutez une description facultative pour la destination.
  • Type: sélectionner le type 'Android Push Notifications (FCM) dans la liste déroulante.
  • Sélectionnez un plan de destination: Destination de préproduction ou Destination de production.
    • Pre-production destination-sélectionnez cette destination comme destination d'envoi à faible coût, pour vos environnements de développement et de test.
    • Production destination-utilisez la fonctionnalité complète de cette destination. Nombre illimité de dispositifs et de messages sortants autorisés.
  • Mettez à jour les données d'identification FCM Push avec project_id, private_key et client_email à partir du fichier téléchargé précédemment.
  • Cliquez sur Ajouter.

Créer une Event Notifications rubrique

Sélectionnez Topics dans la console Event Notifications, puis cliquez sur Create. Entrez les détails de la rubrique suivante :

  • Name : entrez un nom pour la rubrique.
  • Description : ajoutez une description facultative pour le sujet.
  • Source : sélectionnez une source dans la liste déroulante.
  • Event type : sélectionnez le type d'événement dans la liste déroulante.
  • Event sub type : sélectionnez le sous-type d'événement dans la liste déroulante du sous-type d'événement.
  • Severity : sélectionnez la gravité dans la liste déroulante de gravité.
  • Advanced conditions : écrivez vos propres conditions personnalisées, qui doivent suivre les spécifications jsonpath.

Créer un Event Notifications abonnement

Cliquez sur Subscriptions dans la console Event Notifications. Entrez les détails suivants sur l'abonnement :

  • Cliquez sur Click pour afficher l'assistant d'abonnement.
  • Complétez les détails de l'abonnement suivants :
    • Subscription name : nom de l'abonnement.
    • Subscription description : ajout d'une description facultative.
  • Sous la section Subscribe to a topic, sélectionnez une rubrique dans la liste déroulante et une destination dans la liste déroulante de destination.
  • Destination type: sélectionnez le type sous Destination et cliquez sur Ajouter.

Configurer le SDK Android Event Notifications

Le SDK Android permet aux applications Android de recevoir des notifications push. Procédez comme suit pour installer le SDK Android Event Notifications, l'initialiser et enregistrer pour recevoir des notifications pour votre application Android.

  • Installez Event Notifications à l'aide de Gradle.

    compile 'com.ibm.cloud:eventnotifications-destination-android:0.0.1'
    
  • Suivez event-notifications-destination-android-sdk pour installer le SDK.

  • Lorsque Gradle est installé, importez et initialisez le SDK.

    import com.ibm.cloud.eventnotifications.destination.android.ENPush;
    
    String instanceGUID = "<instance_guid>>";
    String destinationID = "<instance_destination_id>";
    String apiKey = "<instance_apikey>";
    
    ENPush enPush = ENPush.getInstance();
    enPush.setCloudRegion(ENPush.REGION_US_SOUTH); // Set your region
    
    enPush.initialize(getApplicationContext(),instanceGUID,destinationID, apiKey);
    
  • Lorsque le SDK est initialisé, enregistrez pour les notifications push.

    // Register the device to Event Notifications
    enPush.registerDeviceWithUserId("userId",new ENPushResponseListener<String>() {
    
       @Override
       public void onSuccess(String deviceId) {
          //handle successful device registration here
       }
    
       @Override
       public void onFailure(ENPushException ex) {
          //handle failure in device registration here
       }
    });
    
  • En option, si vous pouvez également créer un abonnement à une balise push, subscribeToPushTag pour un dispositif push. L'API d'abonnement permet d'abonner l'appareil à une balise particulière. Une fois que le périphérique est abonné à une balise particulière, il peut recevoir des notifications envoyées pour cette balise. Ajoutez l'extrait de code suivant à votre application mobile Android pour vous abonner à une liste d'étiquettes.

    // Subscribe to the given tag, if tagname is not available it will first get create then push device will get subscribe to it.
    enPush.subscribe(tagName, new ENPushResponseListener<String>() {
    
       @Override
       public void onSuccess(String arg) {
          System.out.println("Succesfully Subscribed to: "+ arg);
       }
    
       @Override
       public void onFailure(ENPushException ex) {
          System.out.println("Error subscribing to Tag1.." + ex.getMessage());
       }
    });
    
  • Ajoutez le programme d'écoute Notifications pour recevoir les notifications dans votre application.

    //Handles the notification when it arrives
    ENPushNotificationListener notificationListener = new ENPushNotificationListener() {
    
       @Override
       public void onReceive (final ENSimplePushNotification message){
          // Handle Push Notification
       }
    };
    
    if(enPush != null) {
       enPush.listen(notificationListener);
    }
    
  • Une fois la configuration terminée, exécutez votre application et enregistrez pour les notifications push.

Envoyer des notifications au périphérique Android

Utilisez Envoyer l'API de notification pour envoyer la notification push pour le périphérique Android. Vous pouvez utiliser le SDK d'administration Nœud ou Go au lieu d'appeler directement l'API.

Envoyer des
des

Recevoir des
des

Migration de l'ancienne API HTTP du FCM vers l'API HTTP v1

Les applications utilisant l'ancienne API HTTP du FCM devraient envisager de migrer vers l'API HTTP v1 en suivant les instructions de cette section. L'API HTTP v1 présente des avantages tels que des jetons d'accès sécurisés, des personnalisations efficaces et des versions de plateforme client évolutives et plus extensibles.

Dans Event Notifications, vous pouvez créer une destination Android en suivant les normes FCM. Pour l'ancienne API HTTP, nous avons fourni une assistance via deux paramètres obligatoires server_key et sender_id. For the v1 HTTP API, FCM introduced three new parameters: project_id, client_email, and private_key. Le point important à observer ici est que les API HTTP héritées et v1 sont mutuellement exclusives et nous avons pris soin de cela dans Event Notifications

Voici comment migrer d'une ancienne configuration vers une nouvelle.

  1. Sous votre configuration de destination FCM Android existante, vous trouverez server_key et sender_id fournis. Il vous suffit maintenant de mettre à jour la destination existante en fournissant project_id, client_email et private_key USING l'appel API PATCH /destinations/{id}.

    Configuration de destination Android existante:

    {
       "name": "Existing android destination",
       "description": "Android destination with legacy parameters",
       "type": "push_android",
       "config": {
          "params": {
             "sender_id": "xxxxxx",
             "server_key": "xxxxxx"
          }
       }
    }
    

    Nouvelle configuration de destination Android:

    {
       "name": "New android destination",
       "description": "Android destination with V1 HTTP parameters",
       "type": "push_android",
       "config": {
          "params": {
             "project_id": "xxxxx",
             "private_key": "xxxxx",
             "client_email": "abc@xyz.pqr"
          }
       }
    }
    

Exemples de modifications de contenu FCM

  • API HTTP de l'héritage du FCM

    {
       "notification": {
       "title": "Incidunt qui porro sequi iste assumenda esse animi.",
       "body": "Minus reprehenderit ut nisi. Aut earum qui est iure eos fuga."
       },
       "data": {
          "name": "Willie Greenholt",
          "description": "Voluptas voluptatem sed quia expedita error a at sit rerum. Numquam unde debitis incidunt qui impedit et necessitatibus. Cupiditate exercitationem enim ut laborum itaque et."
       }
    }
    
  • FCM HTTP v1 API

    {
       "message": {
          "android": {
             "notification": {
                "title": "Incidunt qui porro sequi iste assumenda esse animi.",
                "body": "Minus reprehenderit ut nisi. Aut earum qui est iure eos fuga."
             },
             "data": {
                "name": "Willie Greenholt",
                "description": "Voluptas voluptatem sed quia expedita error a at sit rerum. Numquam unde debitis incidunt qui impedit et necessitatibus. Cupiditate exercitationem enim ut laborum itaque et."
             }
          }
       }
    }