IBM Cloud Docs
Creazione e invio di notifiche push a cellulari Android utilizzando Event Notifications

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.

Come i clienti utilizzano le
i clienti utilizzano le notifiche

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 e client_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 un pricing 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"
    FCM

  • Fai clic su Generate new private key per generare le credenziali del progetto. Il file scaricato conterrà: project_id, private_key e client_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
    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.

    Aggiungi Firebase alla tua{: 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:

    Registrare un'applicazione{: 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 tipo Android 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 e client_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 in Destination 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.

Invio di
di

Ricevere le
le

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.

  1. Nella tua configurazione di destinazione FCM Android esistente troverai server_key e sender_id forniti. Ora devi solo aggiornare la destinazione esistente fornendo project_id, client_email e private_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."
             }
          }
       }
    }