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.
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
etclient_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 unepricing 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 surAdd 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 surContinue
. -
Si l'analyse Google est activée, dans la fenêtre
Configure Google Analytics
, choisissezAnalytics 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 deProject Overview
et sélectionnezSettings > Project settings
. -
Cliquez sur l'onglet "
Service Accounts
.de la FCM* Références de la FCM* Références -
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
etclient_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ôneAndroid
.Démarrage de Firebase* Démarrage de -
Dans la fenêtre
Add Firebase to your Android app
, ajoutezcom.ibm.cloud.eventnotifications.destination.android
comme nom de package. La zoneApp nickname
est facultative. -
Cliquez sur Register APP.
Firebase à votre -
Incluez le nom du package de votre application. Entrez le nom du package dans la fenêtre
Add Firebase to your Android app
. La zoneApp nickname
est facultative. -
Cliquez sur Register APP. Voir l'exemple suivant :
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
etclient_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 sousDestination
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.


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.
-
Sous votre configuration de destination FCM Android existante, vous trouverez
server_key
etsender_id
fournis. Il vous suffit maintenant de mettre à jour la destination existante en fournissantproject_id
,client_email
etprivate_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." } } } }