Envío de notificaciones

improve this page | report issue

Visión general

Para poder enviar notificaciones push o SMS a dispositivos iOS, Android o Windows, primero es necesario configurar MobileFirst Server con los detalles de FCM para Android, un certificado APNS para iOS o credenciales WNS para Windows 8.1 Universal / Windows 10 UWP. Las notificaciones entonces se pueden enviar a: todos los dispositivos (difusión), dispositivos registrados a etiquetas específicas, un ID de dispositivo individual, ID de usuario, únicamente a dispositivos iOS, únicamente a dispositivos Android, únicamente a dispositivos Windows o en base al usuario autenticado.

Requisito previo: Asegúrese de completar la guía de aprendizaje Visión general de notificaciones.

Ir a

Configuración de notificaciones

La habilitación del soporte de notificaciones implica seguir varios pasos de configuración tanto en la aplicación de cliente como en MobileFirst Server.
Continúe la lectura para configurar el lado del servidor, o vaya a Configuración del lado del cliente.

En el lado del servidor, la configuración necesaria incluye: la configuración del proveedor que se necesita (APNS, FCM o WNS) y la correlación del ámbito “push.mobileclient”.

Firebase Cloud Messaging

Nota: Google ha dejado de usar GCM y ha integrado Cloud Messaging con Firebase. Si utiliza un proyecto de GCM, asegúrese de migrar a FCM las aplicaciones cliente de GCM en Android.

Los dispositivos Android utilizan el servicio Firebase Cloud Messaging (FCM) para las notificaciones push.
Siga estos pasos para configurar FCM:

  1. Visite la Consola de Firebase.
  2. Cree un proyecto nuevo y dele un nombre.
  3. Pule el icono de la rueda dentada de valores y seleccione Valores de proyecto.
  4. Pulse el separador Cloud Messaging para generar una clave de API de servidor y un ID de remitente y pulse Guardar.

También puede configurar FCM mediante la API REST para el servicio push de MobileFirst o la API REST para el servicio de administración de MobileFirst

Notas

Si su organización dispone de un cortafuegos que restringe el tráfico a o desde Internet, debe seguir los pasos siguientes:

  • Configurar el cortafuegos para permitir la conectividad con FCM a fin de que las aplicaciones de cliente de FCM reciban mensajes.
  • Es necesario abrir los puertos 5228, 5229 y 5230. FCM normalmente solo utiliza el puerto 5228 pero, a veces, también utiliza los puertos 5229 y 5230.
  • FCM no proporciona una dirección IP específica, por lo que debe permitir que el cortafuegos acepte conexiones salientes para todas las direcciones IP contenidas en los bloques de IP que se listan en la ASN 15169 de Google.
  • Asegúrese de que el cortafuegos acepte conexiones salientes de MobileFirst Server a fcm.googleapis.com en el puerto 443.

Imagen de adición de las credenciales de GCM

Servicio de notificaciones push de Apple

Los dispositivos iOS utilizan APNS (Push Notification Service) de Apple para las notificaciones push.
Siga estos pasos para configurar APNS:

  1. Genere un certificado de notificación push para el desarrollo o la producción. Para ver los pasos detallados consulte la sección para iOS aquí.
  2. En MobileFirst Operations Console → [su aplicación] → Push → Valores de push, seleccione el tipo de certificado y proporcione el archivo y la contraseña del certificado. A continuación, pulse Guardar.

Notas

  • Para que se envíen las notificaciones push, los siguientes servidores deben estar disponibles desde una instancia de MobileFirst Server:
    • Servidores de recinto de pruebas:
      • gateway.sandbox.push.apple.com:2195
      • feedback.sandbox.push.apple.com:2196
    • Servidores de producción:
      • gateway.push.apple.com:2195
      • Feedback.push.apple.com:2196
      • 1-courier.push.apple.com 5223
  • Durante la fase de desarrollo, utilice el archivo de certificado de recinto de pruebas apns-certificate-sandbox.p12.
  • Durante la fase de producción, utilice el archivo de certificado de producción apns-certificate-production.p12.
    • El certificado de producción APNS solo se puede probar una vez que la aplicación que la utiliza haya sido enviada de forma satisfactoria a Apple App Store.

Nota: MobileFirst no da soporte a certificados Universales.

También es posible configurar APNS utilizando la API REST para el servicio push de MobileFirst o la API REST para el servicio de administración de MobileFirst

Imagen de adición de credenciales APNS

Servicio de notificaciones push de Windows

Los dispositivos Windows utilizan WNS (Windows Push Notifications Service) para las notificaciones push.
Siga estos pasos para configurar WNS:

  1. Siga las instrucciones que Microsoft proporciona para generar los valores de SID (Package Security Identifier) y Secreto de cliente.
  2. En MobileFirst Operations Console → [su aplicación] → Push → Valores de push, añada estos valores y pulse Guardar.

También es posible configurar WNS utilizando la API REST para el servicio push de MobileFirst o la API REST para el servicio de administración de MobileFirst

Imagen de adición de credenciales WNS

Servicio de notificación SMS

El siguiente código JSON se utiliza para configurar la pasarela SMS para enviar notificaciones SMS. Utilice la API REST smsConf para actualizar a MobileFirst Server con la configuración de pasarela SMS

{
	"host": "2by0.com",
	"name": "dummy",
	"port": "80",
	"programName": "gateway/add.php",
	"parameters": [{
		"name": "xmlHttp",
		"value": "false",
		"encode": "true"
	}, {
		"name": "httpsEnabled",
		"value": "false",
		"encode": "true"
	}]

}

Encuentre más API REST relacionadas con SMS en la Referencia de API del servicio push

Correlaciones de ámbito

Correlacione el elemento de ámbito push.mobileclient con la aplicación.

  1. Cargue MobileFirst Operations Console, vaya a [su aplicación] → Seguridad → Correlaciones de elementos de ámbito y pulse en Nueva.
  2. Especifique “push.mobileclient” en el campo Elemento de ámbito. A continuación, pulse Añadir.

    Ámbito Descripción
    apps.read Permiso para leer recurso de aplicación.
    apps.write Permiso para crear, actualizar, suprimir recurso de aplicación.
    gcmConf.read Permiso para leer valores de configuración GCM (SenderID y clave de API).
    gcmConf.write Permiso para actualizar, suprimir valores de configuración GCM.
    apnsConf.read Permiso para leer valores de configuración de APN.
    apnsConf.write Permiso para actualizar, suprimir valores de configuración APN.
    devices.read Permiso para leer dispositivo.
    devices.write Permiso para crear, actualizar y suprimir dispositivo.
    subscriptions.read Permiso para leer suscripciones.
    subscriptions.write Permiso para crear, actualizar, suprimir suscripciones.
    messages.write Permiso para enviar notificaciones push.
    webhooks.read Permiso para leer notificaciones de suceso.
    webhooks.write Permiso para enviar notificaciones de suceso.
    smsConf.read Permiso para leer valores de configuración SMS.
    smsConf.write Permiso para actualizar, suprimir valores de configuración SMS.
    wnsConf.read Permiso para leer valores de configuración WNS.
    wnsConf.write Permiso para actualizar, suprimir valores de configuración WNS.

    Correlaciones de ámbito

Notificaciones autenticadas

Las notificaciones autenticadas son las que se envían a uno o varios userIds.

Correlacione el elemento de ámbito push.mobileclient para la comprobación de seguridad utilizada para la aplicación.

  1. Cargue MobileFirst Operations Console y vaya a [su aplicación] → Seguridad → Correlación de elementos de ámbito, pulse en Nuevo o edite una entrada de correlación de ámbito existente.
  2. Seleccione una comprobación de seguridad. A continuación, pulse Añadir.

    Notificaciones autenticadas

Definición de etiquetas

En MobileFirst Operations Console → [su aplicación] → Push → Etiquetas, pulse Nueva.
Proporcione el correspondiente Nombre de etiqueta y Descripción y pulse Guardar.

Adición de etiquetas

Las suscripciones se vinculan con una etiqueta y un registro de dispositivo. Cuando se anula el registro de un dispositivo desde una etiqueta, automáticamente se anula el registro de todas las suscripciones asociadas desde el propio dispositivo. En un escenario en el que hay varios usuarios de un dispositivo, las suscripciones se deberían implementar en las aplicaciones móviles en base a un criterio de inicio de sesión. Por ejemplo, realizar la llamada de suscripción después de que el usuario haya iniciado la sesión de forma satisfactoria en una aplicación y realizar de forma explícita la llamada para anular la suscripción como parte del manejo de la acción de finalización de sesión.

Envío de notificaciones

Las notificaciones push se pueden enviar desde MobileFirst Operations Console o a través de API REST.

  • Con MobileFirst Operations Console, se pueden enviar dos tipos de notificaciones: etiqueta y difusión.
  • Con las API REST, se pueden enviar todos los tipos de notificaciones: etiqueta, difusión y autenticada.

MobileFirst Operations Console

Las notificaciones se pueden enviar a un único ID de dispositivo, a uno o varios ID de usuario, solo a dispositivos iOS o solo dispositivos Android, o a dispositivos suscritos a etiquetas.

Notificaciones de etiqueta

Las notificaciones de etiqueta son mensajes de notificación dirigidos a todos los dispositivos que están suscritos a una etiqueta concreta. Las etiquetas representan temas de interés para el usuario y proporcionan la posibilidad de recibir notificaciones de acuerdo al interés escogido.

En MobileFirst Operations Console → [su aplicación] → Push → separador Enviar notificaciones, seleccione Dispositivos por etiquetas desde el separador Enviar a y proporcione el Texto de notificación. A continuación, pulse Enviar.

Enviar por etiqueta

Notificaciones de difusión

Las notificaciones de difusión son una forma de notificaciones push dirigidas a todos los dispositivos suscritos. De forma predeterminada las notificaciones están habilitadas para las aplicaciones de MobileFirst habilitadas para push mediante una suscripción a la etiqueta reservada Push.all (que se crea de forma automática para cada dispositivo). Es posible anular mediante programación la suscripción a la etiqueta Push.all.

En MobileFirst Operations Console → [su aplicación] → Push → separador Enviar notificaciones, seleccione Todo desde el separador Enviar a y proporcione el Texto de notificación. A continuación, pulse Enviar.

enviar a todos

API REST

Cuando se utilizan API REST para enviar notificaciones, se pueden enviar todos los tipos de notificaciones: notificaciones de etiqueta y difusión y notificaciones autenticadas.

Para enviar una notificación, realice una solicitud mediante POST al punto final REST: imfpush/v1/apps/<application-identifier>/messages.

URL de ejemplo:

https://myserver.com:443/imfpush/v1/apps/com.sample.PinCodeSwift/messages

Para revisar todas las API REST de notificaciones push, consulte el tema API REST de servicios de tiempo de ejecución en la documentación de usuario.

Carga útil de notificación

La solicitud puede contener las siguientes propiedades de carga útil:

Propiedades de carga útil Definición
message Mensaje de alerta a enviar.
settings Los valores son los distintos atributos de la notificación.
target Conjunto de destinos: etiquetas, plataformas, dispositivos o ID de consumidor. Solo se puede especificar uno de los destinos.
deviceIds Matriz de los dispositivos representados por los identificadores de dispositivo. Los dispositivos con estos identificadores recibirán la notificación. Se trata de una notificación de difusión única.
notificationType Valor entero para indicar el canal (Push/SMS) utilizado para enviar el mensaje. Los valores permitidos son 1 (solo push), 2 (solo SMS) y 3 (push y SMS)
platforms Matriz de plataformas de dispositivo. Los dispositivos que se ejecuten en estas plataformas recibirán la notificación. Los valores soportados son (Apple/iOS), G (Google/Android) y M (Microsoft/Windows).
tagNames Matriz de etiquetas especificados como tagNames. Los dispositivos suscritos a estas etiquetas recibirán la notificación. Este tipo de destino se utiliza con notificaciones basadas en etiquetas.
userIds Matriz de usuarios representados por sus userIds para enviar la notificación. Se trata de una notificación de difusión única.
phoneNumber Número de teléfono utilizado para registrar el dispositivo y recibir notificaciones. Se trata de una notificación de difusión única.

Ejemplo JSON de carga útil de notificaciones push

{
    "message" : {
    "alert" : "Test message",
  },
  "settings" : {
    "apns" : {
      "badge" : 1,
      "iosActionKey" : "Ok",
      "payload" : "",
      "sound" : "song.mp3",
      "type" : "SILENT",
    },
    "gcm" : {
      "delayWhileIdle" : ,
      "payload" : "",
      "sound" : "song.mp3",
      "timeToLive" : ,
    },
  },
  "target" : {
    // The list below is for demonstration purposes only - per the documentation only 1 target is allowed to be used at a time.
    "deviceIds" : [ "MyDeviceId1", ... ],
    "platforms" : [ "A,G", ... ],
    "tagNames" : [ "Gold", ... ],
    "userIds" : [ "MyUserId", ... ],
  },
}

Ejemplo JSON de carga útil de notificación SMS

{
  "message": {
    "alert": "Hello World from an SMS message"
  },
  "notificationType":3,
   "target" : {
     "deviceIds" : ["38cc1c62-03bb-36d8-be8e-af165e671cf4"]
   }
}

Envío de la notificación

La notificación se puede envían utilizando diferentes herramientas.
Para realizar pruebas, se utiliza Postman tal como se describe a continuación:

  1. Configuración de un cliente confidencial.
    El envío de una notificación push a través de la API REST utiliza elementos de ámbito separados por espacios messages.write y push.application.<applicationId>.

    Configuración de un cliente confidencial

  2. Creación de una señal de acceso.

  3. Realice una solicitud POST a http://localhost:9080/imfpush/v1/apps/com.sample.PushNotificationsAndroid/messages
    • Si está utilizando una instancia remota de MobileFirst, sustituya los valores de hostname y port con los suyos propios.
    • Actualice el valor del identificador de aplicación con el suyo propio.
  4. Establezca una cabecera:
    • Authorization: Bearer eyJhbGciOiJSUzI1NiIsImp ...
    • Sustituya el valor después de “Bearer” con su señal de acceso obtenida en el paso (1) anterior.

    cabecera de autorización

  5. Establezca un cuerpo:
    • Actualice sus propiedades tal como se describe anteriormente en Carga útil de notificación.
    • Por ejemplo, añadiendo la propiedad target con el atributo userIds, podrá enviar una notificación a usuarios específicamente registrados.
    {
         "message" : {
             "alert" : "Hello World!"
         }
    }
    

    cabecera de autorización

Después de pulsar el botón Enviar, el dispositivo debería haber recibido una notificación:

Imagen de la aplicación de ejemplo

Personalización de notificaciones

Antes de enviar el mensaje de notificación, también puede personalizar los siguientes atributos de notificación.

En MobileFirst Operations Console → [su aplicación] → Push → Etiquetas → separador Enviar notificaciones, amplíe la sección Valores personalizados de iOS/Android para cambiar los atributos de notificación.

Android

  • Entre otras, sonido de notificación, tiempo que permanece almacenada una notificación en el almacenamiento FCM o carga útil personalizada.
  • Si desea cambiar el título de la notificación, añada push_notification_tile en el archivo strings.xml del proyecto.

iOS

  • Sonido de notificación, carga útil personalizada, título de clave de acción, tipo de notificación y número de identificador.

personalización de notificaciones push

Soporte de HTTP/2 para notificaciones push de APN

El servicio de notificaciones push de Apple (APNs) admite una nueva API basada en el protocolo de red HTTP/2. El soporte para HTTP/2 proporciona muchos beneficios, entre ellos los que se listan a continuación:

  • Longitud de mensaje incrementada de 2 KB a 4 KB, lo que permite añadir contenido extra a las notificaciones.
  • Elimina la necesidad de varias conexiones entre el cliente y el servidor, cosa que mejora el rendimiento.
  • Soporte para el certificado SSL de cliente universal de notificaciones push.

Las notificaciones push de MobileFirst ahora dan soporte a las notificaciones push de APN basadas en HTTP/2 además de las notificaciones heredadas basadas en sockets TCP.

Habilitación de HTTP/2

Las notificaciones basadas en HTTP/2 pueden habilitarse mediante una propiedad JNDI.

<jndiEntry jndiName="imfpush/mfp.push.apns.http2.enabled" value= "true"/>

Nota: Si se añade la propiedad JNDI indicada, las notificaciones heredadas basadas en socket TCP no se utilizarán, y solamente se habilitarán las notificaciones basadas en HTTP/2.

Soporte de proxy para HTTP/2

Las notificaciones basadas en HTTP/2 pueden habilitarse mediante una propiedad HTTP. Para habilitar el direccionamiento de notificaciones a través de un proxy, consulte aquí.

Soporte de proxy

Utilice los valores proxy para establecer el proxy opcional a través de las notificaciones que se envían a dispositivos Android e iOS. El proxy se configura mediante las propiedades de configuración push.apns.proxy. y push.gcm.proxy.. Para obtener más información, consulte Lista de propiedades JNDI para el servicio push de MobileFirst Server.

Guías de aprendizaje con las que continuar

Con el servidor ahora configurado, configure el lado del cliente y trate las notificaciones que se reciban.

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on May 13, 2020