Configuración Firebase Cloud Messaging y envío de notificaciones push móviles en Connectif

Para el envío y recepción de notificaciones push móviles mediante el Mobile SDK de Android necesitarás tener configurado Firebase Cloud Messaging. En este artículo se explican los pasos necesarios para realizar la configuración.

 

1. Crear y configurar el proyecto en Firebase

1.1. Crear y configurar un proyecto en Firebase

El primer paso será tener configurado un proyecto en la consola de Firebase, en caso de no tenerlo podremos seguir la guía de Google para la creación y configuración inicial de Firebase en Android. 

Una vez tengamos este punto completado, habremos conseguido el fichero google-services.json y tendremos Google Play Service a nivel proyecto y app, y la dependencia de Firebase a nivel app (dentro de nuestros ficheros Build.gradle).

 

1.2. Configuración de FirebaseMessagingService

Dentro de nuestro proyecto Android, necesitaremos tener implementado el servicio FirebaseMessagingService, en cual nos permitirá recibir las notificaciones mediante onMessageReceived y registrar los cambios de push token con onNewToken.

a. Recepción de notificaciones en onMessageReceived

En la llamada onMessageReceived recibiremos nuestras notificaciones generadas desde nuestros Workflows en Connectif, para poder manejar esos push utilizaremos Connectif.handlePushNotification, el cual nos devolverá un booleano indicando si ese push fue manejado por Connectif, como se ve en la implementación lo utilizaríamos para poder manejar todos los push que no provengan de Connectif.

override fun onMessageReceived(remoteMessage: RemoteMessage) {
if (!Connectif.handlePushNotification(
remoteMessage.data,
applicationContext
)

) {
// Other push providers
}

}

Si deseamos identificar si el push viene de parte de Connectif y no deseamos manejarlo en ese momento, podremos utilizar Connectif.isConnectifPushNotification.

b. Registrar cambios en el token de push

La primera vez que arranca nuestra app genera un nuevo token, lo podremos registrar a través de nuestro servicio con onNewToken.

override fun onNewToken(token: String) {
Connectif.addPushToken(token)
}

Este token podrá cambiar en los siguientes casos: 

  • La app se restablece en un dispositivo nuevo.
  • El usuario desinstala y vuelve a instalar la app.
  • El usuario borra los datos de la app.

Este será el aspecto de nuestra implementación de FirebaseMessagingService.

class MyFirebaseMessagingService : FirebaseMessagingService() {
private val notificationManager by lazy {

getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
}

override fun onMessageReceived(remoteMessage: RemoteMessage) {
if (!Connectif.handlePushNotification(
remoteMessage.data,
notificationManager,
applicationContext
)

) {
// Other push providers
}

}

override fun onNewToken(token: String) {
Connectif.addPushToken(token)
}
}

Tendremos que tener en cuenta que si no es el primer inicio de la app, no se ejecutará onNewToken, por lo que será interesante obtener el token de push actual de la instancia de Firebase y enviarlo a Connectif. Los lugares adecuados serán durante onCreate en nuestro objeto Application o en el de nuestra Activity principal.

class SampleApp : Application() {

override fun onCreate() {
super.onCreate()
FirebaseMessaging.getInstance().token.addOnSuccessListener {
Connectif.addPushToken(it, applicationContext)
}

}
}

 

c. Añadir FirebaseMessagingService al fichero AndroidManifest

Para poder usar el servicio de mensajería, deberemos de añadirlo a nuestro fichero AndroidManifest.

<service
android:name=".mypackages.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

 

2. Configurar Android en la Integración App Móvil de Connectif

Para poder realizar el envío de push desde Connectif, necesitaremos que nos facilites la clave privada (fichero JSON) de la Cuenta de Servicio para Google Cloud. Los pasos para la creación son los siguientes.

Desde la Consola de Firebase accederemos a nuestro proyecto, dentro de "Configuración de proyecto" accederemos a las "Cuentas de Servicio.

console.firebase.google.com_u_3_project_sdk-test-app-51cdb_settings_serviceaccounts_adminsdk.png

 

Manteniendo el check en Node.js, pulsaremos en "Generar nueva clave privada". Esta acción nos generará un fichero JSON el cual necesitaremos más adelante.

Dentro de Connectif iremos a la configuración de nuestra tienda, a la sección del canal App Móvil. Nos encontraremos una sección Android que nos permitirá subir el anterior fichero descargado en Firebase.

 

localhost_3002_store_64886d8852c77f00f7b2379e_store-edit_tabId=mobileApp.png

 

Y este será el aspecto que tendrá nuestra integración cuando hayamos subido nuestro fichero correctamente.

 

localhost_3002_store_64886d8852c77f00f7b2379e_store-edit_tabId=mobileApp (1).png

 

Una vez realizados estos pasos tendremos la integración de Firebase Cloud Messaging lista para enviar push desde nuestros workflows.

 

3. Configuración adicional

Recuerda que al iniciar el SDK podrá definir algunos valores usando el parámetro ConnectifConfig en Connectif.initialize().

3.1. Icono 

Por defecto tendremos un icono asignado a nuestras notificaciones push:

ic_default_notification default_push_icon.png 

Si lo deseas podrás personalizando indicando el recurso en la propiedad pushSmallIcon de ConnectifConfig al iniciar el SDK, recuerda que para que se visualice correctamente debe contener únicamente color blanco y transparencias.

3.2. Canal de notificaciones

Desde Android 8 es obligatorio crear un canal para poder mostrar las notificaciones, por defecto asignaremos a las notificaciones mostradas por Connectif el nombre de canal "Default Channel" y "connectif_channel" como identificador de canal.

Podrás indicarnos tu nombre y canal personalizado usando las propiedades pushChannelName y pushChannelId de ConnectifConfig al iniciar el SDK.

 

 

 

¡Enhorabuena!
Has llegado al final de la lección.

  

¿Te han quedado dudas sin resolver?
Recuerda que tienes a tu disposición a nuestros especialistas en Connectif. Para contactar con ellos, tan solo tendrás que abrir ticket a Soporte haciendo clic en el botón azul de “Ayuda” de tu dashboard.


¡Sigue aprendiendo!

Para aprovechar todo el potencial de tu cuenta en Connectif, te recomendamos continuar con los siguientes artículos:

¿Fue útil este artículo?
Usuarios a los que les pareció útil: 0 de 0