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.
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
yclient_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 unpricing 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, pulseAdd 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 pulseContinue
. -
Si Google Analytics está habilitado, en la ventana
Configure Google Analytics
, elijaAnalytics 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 aProject Overview
y seleccioneSettings > Project settings
. -
Haz clic en la pestaña "
Service Accounts
".{: caption="
-
Pulse Generar nueva clave privada para generar las credenciales del proyecto. El archivo descargado contendrá:
project_id
,private_key
yclient_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 iconoAndroid
.: cómo -
En la ventana
Add Firebase to your Android app
, añadacom.ibm.cloud.eventnotifications.destination.android
como Nombre de paquete. El campoApp nickname
es opcional. -
Pulse Registrar APP.
Firebase a tu -
Incluya el nombre de paquete de la aplicación. Especifique el nombre del paquete en la ventana
Add Firebase to your Android app
. El campoApp nickname
es opcional. -
Pulse Registrar APP. Consulte el ejemplo siguiente:
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
yclient_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 bajoDestination
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.


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.
-
En la configuración de destino de FCM Android existente, encontrará
server_key
ysender_id
proporcionados. Ahora solo tiene que actualizar el destino existente proporcionandoproject_id
,client_email
yprivate_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." } } } }