Creazione e invio di notifiche push a cellulari Android utilizzando Event Notifications
Crea un servizio Event Notifications, aggiungi una destinazione di push per FCM (Firebase Cloud Messaging) e invia messaggi a dispositivi Android.
Che cos'è Event Notifications?
Event Notifications è un servizio di routing delle notifiche di eventi che notifica gli eventi critici che si verificano nell'account IBM Cloud o attiva azioni automatiche tramite webhook. Puoi filtrare e instradare le notifiche di eventi da IBM Cloud servizi come Availability Monitoring, a email, SMS, notifiche di push e webhook.
In che modo i client utilizzano le notifiche push Android?
Il seguente diagramma mostra come i client utilizzano Android Push Notifications.
Obiettivi
Questa esercitazione ti mostra come inviare le notifiche di push come segue:
- Creare un'applicazione mobile con Event Notifications.
- Ottieni credenziali FCM.
- Scaricate il codice e completate la configurazione delle notifiche.
- Configurare e inviare notifiche push Android a un dispositivo mobile.
Prima di iniziare
È necessario disporre dei seguenti prerequisiti:
- Scarica e installa Android Studio in modo da poter importare e migliorare il tuo codice.
- Un account Google per accedere alla console Firebase per ottenere il tuo
project_id
,private_key
eclient_email
. - Un IBM Cloud. Se non ne hai uno, crea un account IBM Cloud.
Le istruzioni utilizzate in questo documento utilizzano l'API HTTP v1 di FCM. L'API HTTP v1 presenta vantaggi quali token di accesso sicuri, personalizzazioni efficienti e versioni della piattaforma client più estendibili e a prova di futuro. Per ulteriori informazioni sulla migrazione da FCM legacy HTTP API a HTTP v1 API, vedere Migrazione di FCM legacy HTTP API a HTTP v1 API.
Creare un'istanza del servizio Event Notifications
- Accedi al tuo accountIBM Cloud.
- Nel catalogoIBM Cloud, cerca e seleziona
Event Notifications > Event Notifications
. - Selezionare un
Region
dall'elenco di regioni supportate e selezionare unpricing plan
. - Fornire un '
Service name
. - Selezionare un '
resource group
. - Accettare i termini e gli accordi di licenza facendo clic sulla check box.
- Fare clic su '
Create
.
Ottieni le credenziali FCM
Firebase Cloud Messaging (FCM) è il gateway che fornisce notifiche push ai dispositivi Android. Per configurare la destinazione Push Android nella console, devi ottenere le tue credenziali FCM project_id
, private_key
e client_email
.
-
Vai a Firebase console. È obbligatorio un account utente Google.
-
Fare clic su '
Create a project
. Se si dispone già di un progetto, fare clic su 'Add Project
. -
In '
Create a project window
, inserite il nome del progetto, accettate i termini e abilitate o disabilitate Google analytics (opzionale) selezionando l'interruttore a levetta e fate clic su 'Continue
. -
Se Google analytics è abilitato, nella finestra "
Configure Google Analytics
scegliere il "Analytics location
e accettare i termini. -
Fare clic su '
Create Project
. -
Fare clic su "
Continue
quando il nuovo progetto è pronto. -
Nel pannello di navigazione, selezionare l'icona '
settings
accanto al 'Project Overview
e selezionare 'Settings > Project settings
. -
Fare clic sulla scheda "
Service Accounts
.caption-side=bottom" -
Fai clic su Generate new private key per generare le credenziali del progetto. Il file scaricato conterrà:
project_id
,private_key
eclient_email
.
Genera google-services.json
È inoltre necessario generare il file 'google-services.json
. Completa i seguenti passi:
-
Nella sezione Panoramica del progetto della console Firebase, sotto la sezione '
Get started by adding Firebase to your app
, fare clic sull'icona 'Android
.Firebase getting started -
Nella finestra '
Add Firebase to your Android app
, aggiungere 'com.ibm.cloud.eventnotifications.destination.android
come nome del pacchetto. Il campo "App nickname
è facoltativo. -
Fai clic su Registra app.
{: caption="AndroidAggiungi Firebase alla tua " caption-side="bottom"} Android
-
Includere il nome del pacchetto dell'applicazione. Immettere il nome pacchetto nella finestra
Add Firebase to your Android app
. Il campo "App nickname
è facoltativo. -
Fai clic su Registra app. Vedi il seguente esempio:
{: caption="AndroidRegistrare un'" caption-side="bottom"} Android
-
Viene generato il file
google-services.json
. -
Scaricare l'ultimo file di configurazione '
google-services.json
in Le vostre applicazioni.
Aggiungi un'origine API generica
Effettuare le seguenti operazioni:
- Vai alla sezione
Sources
del dashboard Event Notifications. - Fare clic su
Add
e selezionare un'origine API. - Immettere un nome e una descrizione facoltativa e fare clic su
Add
.
Crea una destinazione Event Notifications
Fai clic Destinations
nella console Event Notifications e aggiungi i seguenti dettagli di destinazione:
Name
: aggiungere un nome per la destinazione.Description
: aggiungere una descrizione facoltativa per la destinazione.Type
: selezionare il tipoAndroid Push Notifications (FCM)
dall'elenco a discesa.- Selezionare un piano di destinazione: destinazione di pre - produzione o destinazione di produzione.
Pre-production destination
- seleziona questa destinazione come destinazione push a basso costo, per i tuoi ambienti di sviluppo e test.Production destination
- utilizzare la funzionalità completa di questa destinazione. Dispositivi illimitati e messaggi in uscita consentiti.
- Aggiornare le credenziali push FCM con
project_id
,private_key
eclient_email
dal file scaricato in precedenza. - Fai clic su Aggiungi.
Crea un argomento Event Notifications
Selezionare Topics
nella console Event Notifications e fare clic su Create
. Immettere i seguenti dettagli argomento:
Name
: immettere un nome per l'argomento.Description
: aggiungere una descrizione facoltativa per l'argomento.Source
: selezionare un'origine dall'elenco a discesa.Event type
: selezionare il tipo di evento dall'elenco a discesa.Event sub type
: selezionare il tipo secondario di evento dall'elenco a discesa del tipo secondario di evento.Severity
: selezionare la severità dall'elenco a discesa della severità.Advanced conditions
: scrivi le tue proprie condizioni personalizzate, che devono seguire le specifiche jsonpath.
Crea una sottoscrizione Event Notifications
Fai clic su Subscriptions
nella console Event Notifications. Immettere i dettagli della sottoscrizione riportati di seguito:
Click
Crea per visualizzare la procedura guidata di sottoscrizione.- Completare le seguenti informazioni di sottoscrizione:
Subscription name
: nome della sottoscrizione.Subscription description
: aggiungere una descrizione facoltativa.
- Nella sezione
Subscribe to a topic
, selezionare un argomento dall'elenco a discesa e selezionare una destinazione dall'elenco a discesa di destinazione. Destination type
: selezionare il tipo inDestination
e fare clic su Aggiungi.
Configura Event Notifications Android SDK
L' Android SDK consente alle applicazioni Android di ricevere notifiche di push. Completa la seguente procedura per installare Event Notifications Android SDK, avviare l'SDK e registrarti per le notifiche per la tua applicazione Android.
-
Installa Event Notifications utilizzando Gradle.
compile 'com.ibm.cloud:eventnotifications-destination-android:0.0.1'
-
Segui event - notifications - destination - android - sdk per installare l'SDK.
-
Quando Gradle è installato, importa e inizializza l'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);
-
Quando l'SDK viene inizializzato, registra per notifiche di 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 } });
-
Facoltativamente, se è possibile creare una sottoscrizione di tag push, subscribeToPushTag per il dispositivo push. L'API di sottoscrizione sottoscrive il dispositivo per una particolare tag. Dopo aver sottoscritto un particolare tag, il dispositivo può ricevere le notifiche inviate per quel tag. Aggiungere il seguente frammento di codice alla propria applicazione mobile Android per sottoscrivere un elenco di tag.
// 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()); } });
-
Aggiungere il listener di notifica per ricevere la notifica nell'applicazione.
//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); }
-
Quando la configurazione è completa, esegui la tua applicazione e registrati per le notifiche di push.
Invia notifiche al dispositivo Android
Utilizza l'API di invio notifica per inviare la notifica di push per il dispositivo Android. Puoi utilizzare l'SDK admin Node o Go invece di richiamare direttamente l'API.


Migrazione dell'API HTTP legacy di FCM all'API HTTP v1
Le applicazioni che utilizzano l'API HTTP legacy di FCM devono considerare la possibilità di migrare all'API HTTP v1 seguendo le istruzioni di questa sezione. L'API HTTP v1 presenta vantaggi quali token di accesso sicuri, personalizzazioni efficienti e versioni della piattaforma client più estendibili e a prova di futuro.
In Event Notifications, puoi creare una destinazione android seguendo le norme FCM. Per le API HTTP legacy abbiamo fornito il supporto tramite due parametri obbligatori server_key
e sender_id
. For the v1 HTTP API, FCM
introduced three new parameters: project_id
, client_email
, and private_key
. Il punto importante da osservare è che le API HTTP legacy e v1 si escludono a vicenda e di questo ci siamo occupati in Event
Notifications.
Ecco come migrare da una vecchia configurazione a una nuova.
-
Nella tua configurazione di destinazione FCM Android esistente troverai
server_key
esender_id
forniti. Ora devi solo aggiornare la destinazione esistente fornendoproject_id
,client_email
eprivate_key
USING la chiamata API PATCH /destinations/{id}.Configurazione di destinazione Android esistente:
{ "name": "Existing android destination", "description": "Android destination with legacy parameters", "type": "push_android", "config": { "params": { "sender_id": "xxxxxx", "server_key": "xxxxxx" } } }
Nuova configurazione di destinazione 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" } } }
Esempi di modifiche del payload FCM
-
API HTTP legacy 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." } }
-
API FCM HTTP v1
{ "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." } } } }