IBM Cloud Docs
Creación y envío de notificaciones push a móviles Android utilizando Event Notifications

Creación y envío de notificaciones push a móviles Android utilizando Event Notifications

Cree un servicio Event Notifications, añada un destino de envío para Firebase Cloud Messaging (FCM) y envíe mensajes a dispositivos Android.

¿Qué es Event Notifications?

Event Notifications es un servicio de enrutamiento de notificaciones de eventos que le notifica los eventos críticos que se producen en su cuenta IBM Cloud o desencadena acciones automatizadas mediante el uso de webhooks. Puede filtrar y enrutar notificaciones de eventos desde servicios IBM Cloud como Availability Monitoring, a correo electrónico, SMS, notificaciones push y webhooks.

¿Cómo utilizan los clientes las notificaciones de envío push de Android?

El siguiente diagrama muestra cómo utilizan los clientes las notificaciones push de Android.

utilizan los clientes las
push*

Objetivos

Esta guía de aprendizaje muestra cómo enviar notificaciones de envío push de la siguiente manera:

  • Cree una aplicación móvil con Event Notifications.
  • Obtener credenciales FCM.
  • Descargue el código y complete la configuración de las notificaciones.
  • Configurar y enviar notificaciones de envío push de Android a un dispositivo móvil.

Antes de empezar

Debe tener los requisitos previos siguientes aplicados:

  • Descargue e instale Android Studio para poder importar y mejorar el código.
  • Una cuenta de Google para iniciar sesión en la consola de Firebase para obtener project_id, private_key y client_email.
  • Una cuenta de IBM Cloud. Si no tiene una, cree una cuenta de IBM Cloud.

Las instrucciones utilizadas en este documento utilizan la API HTTP v1 de FCM. La API HTTP v1 ofrece ventajas como tokens de acceso seguros, personalizaciones eficientes y versiones de plataformas cliente más ampliables y preparadas para el futuro. Para obtener más información sobre la migración de la API HTTP heredada de FCM a la API HTTP v1, consulte Migración de la API HTTP heredada de FCM a la API HTTP v1.

Crear una instancia de servicio de Event Notifications

  • Inicie sesión en su cuentaIBM Cloud.
  • En el catálogo de IBM Cloud, busque y seleccione Event Notifications > Event Notifications.
  • Seleccione un Region de la lista de regiones soportadas y seleccione un pricing plan.
  • Proporcione un Service name.
  • Seleccione un resource group.
  • Acepte los acuerdos de licencia y los términos pulsando el recuadro de selección.
  • Pulse Create.

Obtener credenciales FCM

Firebase Cloud Messaging (FCM) es la pasarela que entrega notificaciones de envío push a dispositivos Android. Para configurar el destino Android Push en la consola, debe obtener sus credenciales FCM ' project_id, ' private_key, y ' client_email.

  • Vaya a la Consola de Firebase. Se requiere una cuenta de Google.

  • Pulse Create a project. Si ya tiene un proyecto, pulse Add Project.

  • En Create a project window, especifique un nombre de proyecto y acepte los términos y habilite o inhabilite la analítica de Google (opcional) seleccionando el conmutador de conmutación y pulse Continue.

  • Si Google Analytics está habilitado, en la ventana Configure Google Analytics, elija Analytics location y acepte los términos.

  • Pulse Create Project.

  • Pulse Continue cuando el nuevo proyecto esté listo.

  • En el panel de navegación, seleccione el icono settings situado junto a Project Overview y seleccione Settings > Project settings.

  • Haz clic en la pestaña " Service Accounts ".

    ![Credenciales](images/en-fcm-credentials.png "" caption-side="bottom"}"){: caption="

  • Pulse Generar nueva clave privada para generar las credenciales del proyecto. El archivo descargado contendrá: project_id, private_key y client_email.

Generar google-services.json

También debe generar el archivo google-services.json. Complete los pasossiguientes:

  • En la sección Visión general del proyecto de la consola de Firebase, en la sección Get started by adding Firebase to your app, pulse el icono Android.

    Firebase: cómo
    : cómo

  • En la ventana Add Firebase to your Android app, añada com.ibm.cloud.eventnotifications.destination.android como Nombre de paquete. El campo App nickname es opcional.

  • Pulse Registrar APP.

    Añade Firebase a tu aplicación
    Firebase a tu
    Android*

  • Incluya el nombre de paquete de la aplicación. Especifique el nombre del paquete en la ventana Add Firebase to your Android app. El campo App nickname es opcional.

  • Pulse Registrar APP. Consulte el ejemplo siguiente:

    Registrar aplicación
    aplicación

  • Se generará el archivo google-services.json.

  • Descargue el archivo de configuración más reciente google-services.json en sus aplicaciones.

Añadir un origen de API genérico

Siga estos pasos:

  • Vaya a la sección Sources del panel de control de Event Notifications.
  • Pulse Add y seleccione un origen de API.
  • Escriba un nombre y una descripción opcional y pulse Add.

Crear un destino Event Notifications

Pulse Destinations en la consola de Event Notifications y añada los siguientes detalles de destino:

  • Name: añada un nombre para el destino.
  • Description: añada una descripción opcional para el destino.
  • Type: seleccione el tipo ' Android Push Notifications (FCM) ' de la lista desplegable.
  • Seleccione un plan de destino: Destino de preproducción o Destino de producción.
    • Pre-production destination-seleccione este destino como destino de envío de bajo coste, para los entornos de desarrollo y prueba.
    • Production destination-utilizar la capacidad completa de este destino. Dispositivos ilimitados y mensajes salientes permitidos.
  • Actualice las credenciales push de FCM con project_id, private_key y client_email desde el archivo descargado anteriormente.
  • Pulse Añadir.

Crear un tema Event Notifications

Seleccione Topics en la consola de Event Notifications y pulse Create. Especifique los siguientes detalles del tema:

  • Name: especifique un nombre para el tema.
  • Description: añada una descripción opcional para el tema.
  • Source: seleccione un origen de la lista desplegable.
  • Event type: seleccione el tipo de suceso en la lista desplegable.
  • Event sub type: seleccione el subtipo de suceso en la lista desplegable de subtipos de sucesos.
  • Severity: seleccione la gravedad en la lista desplegable de gravedad.
  • Advanced conditions: escriba sus propias condiciones personalizadas, que deben seguir las especificaciones de jsonpath.

Crear una suscripción de Event Notifications

Pulse Subscriptions en la consola de Event Notifications. Especifique los siguientes detalles la suscripción:

  • Pulse Click para visualizar el asistente de suscripción.
  • Complete los siguientes detalles de suscripción:
    • Subscription name: nombre de la suscripción.
    • Subscription description: añada una descripción opcional.
  • En la sección Subscribe to a topic, seleccione un tema en la lista desplegable y seleccione un destino en la lista desplegable de destino.
  • Destination type: seleccione el tipo bajo Destination y pulse Añadir.

Configurar el SDK de Android de Event Notifications

El SDK de Android permite a las aplicaciones de Android recibir notificaciones de envío push. Complete los pasos siguientes para instalar el SDK de Android de Event Notifications, inicializar el SDK y registrarse para las notificaciones de su aplicación Android.

  • Instale Event Notifications utilizando Gradle.

    compile 'com.ibm.cloud:eventnotifications-destination-android:0.0.1'
    
  • Siga event-notifications-destination-android-sdk para instalar el SDK.

  • Cuando Gradle está instalado, importe e inicialice el 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);
    
  • Cuando el SDK esté inicializado, regístrese para notificaciones de envío 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
       }
    });
    
  • Opcionalmente si también puede crear la suscripción de etiquetas push, subscribeToPushTag para el dispositivo push. La API de suscripción suscribe el dispositivo a una etiqueta determinada. Después de que el dispositivo esté suscrito a una etiqueta determinada, el dispositivo puede recibir notificaciones que se envían para dicho código. Añada el siguiente fragmento de código a su aplicación móvil Android para suscribirse a una lista de etiquetas.

    // 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());
       }
    });
    
  • Añada el escucha de notificaciones para recibir la notificación en la aplicación.

    //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);
    }
    
  • Cuando la configuración se haya completado, ejecute la aplicación y regístrese para notificaciones push.

Enviar notificaciones al dispositivo Android

Utilice la API de notificación de envío para enviar la notificación de envío push para el dispositivo Android. Puede utilizar el SDK de administración de Nodo o Go en lugar de llamar directamente a la API.

caption-side=bottom"
Enviar

caption-side=bottom"
Recibir

Migración de la API HTTP heredada de FCM a la API HTTP v1

Las aplicaciones que utilizan la API HTTP heredada de FCM deben considerar la migración a la API HTTP v1 siguiendo las instrucciones de esta sección. La API HTTP v1 ofrece ventajas como tokens de acceso seguros, personalizaciones eficientes y versiones de plataformas cliente más ampliables y preparadas para el futuro.

En Event Notifications, puede crear un destino android siguiendo las normas de FCM. Para la API HTTP heredada hemos estado proporcionando soporte a través de dos parámetros obligatorios server_key y sender_id. For the v1 HTTP API, FCM introduced three new parameters: project_id, client_email, and private_key. El punto importante a observar aquí es que tanto el legado y v1 HTTP APIs son mutuamente excluyentes y nos hemos ocupado de que en Event Notifications.

A continuación se muestra cómo puede migrar de una configuración antigua a una nueva.

  1. En la configuración de destino de FCM Android existente, encontrará server_key y sender_id proporcionados. Ahora solo tiene que actualizar el destino existente proporcionando project_id, client_email y private_key USING la llamada de API PATCH /destinations/{id}.

    Configuración de destino de Android existente:

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

    Nueva configuración de destino de 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"
          }
       }
    }
    

Ejemplos de cambios de carga útil de FCM

  • API HTTP heredada de 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 HTTP v1 de FCM

    {
       "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."
             }
          }
       }
    }