Skip to main content

Cómo implementar notificaciones push en Android con Sendbird Chat y Firebase

Taha
Taha Saghir
Solutions Engineer
  • Tutorial Type: Basics
  • Reading Time: 10 min
  • Building Time: 1 hr
Chat SDK v4 2x

Swift, Kotlin, and TypeScript SDKs

Build in-app chat, calls, and live streaming

Introducción: ¿Qué son las notificaciones push y por qué son importantes?

Una notificación push es un mensaje que se envía inmediatamente al dispositivo de un usuario cuando el dispositivo está inactivo o ejecutando la aplicación cliente en segundo plano. Las notificaciones push son importantes porque brindan información importante, actualizaciones y aumentan la participación del usuario con su aplicación. Además, las notificaciones automáticas son un poderoso canal de marketing mediante el cual puede dirigirse a los usuarios adecuados, ofrecer contenido significativo, aumentar las tasas de conversión y mejorar su estrategia de atención al cliente. De hecho, según RubyGarage, las organizaciones que implementan notificaciones automáticas tienen 3 veces más retención de clientes y un 88 % más de participación que las empresas que no lo hacen. Nuestra guía de notificaciones push móviles tiene todo lo que necesita saber sobre las notificaciones push, sus ventajas y cómo se pueden utilizar.

Este tutorial proporciona instrucciones paso a paso para implementar notificaciones push de Android.

Prerrequisitos

  1. Crear una cuenta de Sendbird
  2. Asegúrate de que Sendbird Chat funcione bien en tu aplicación de Android. Quizás quieras consultar la guía de implementación de Kotlin o este tutorial sobre Creación de una aplicación de chat para Android con UIKit. Los documentos contienen orientación adicional para implementar el chat en tiempo real en su aplicación de Android.

Es importante comprender que las notificaciones automáticas en las aplicaciones cliente de Android se envían mediante Firebase Cloud Messaging (FCM) o Huawei Mobile Service (HMS), y estas contienen datos personalizados que su aplicación necesita para responder a las notificaciones. Cuando se envía un mensaje al servidor Sendbird desde una aplicación (a través de Chat SDK para Android), el servidor se comunica con FCM o HMS, y luego FCM o HMS envía una notificación automática al dispositivo Android. Este artículo se centra en la configuración de notificaciones automáticas con FCM.

Sendbird ofrece dos opciones para notificaciones push: notificaciones push generales y notificaciones push con soporte para múltiples dispositivos.

Las notificaciones automáticas generales admiten usuarios de uno o varios dispositivos y se entregan solo cuando un usuario está completamente desconectado (desconectado del servidor) de todos los dispositivos. En otras palabras, si un usuario está en línea en uno o más dispositivos, las notificaciones no se entregan y, por lo tanto, no se muestran en ningún dispositivo. Por otro lado, las notificaciones automáticas con soporte para múltiples dispositivos se envían a todos los dispositivos fuera de línea, incluso cuando un usuario está en línea en uno o más dispositivos.

Notificaciones push para Android: FCM

Hay dos tipos de mensajes FCM: mensajes de notificación y mensajes de datos. Según la documentación de Firebase, "los mensajes de notificación tienen un conjunto predefinido de claves visibles para el usuario y una carga útil de datos opcional de pares clave-valor personalizados". Por el contrario, los mensajes de datos contienen sólo pares clave-valor definidos por el usuario. Sendbird utiliza mensajes de datos, lo que permite que las aplicaciones cliente creen la carga útil del mensaje personalizado que consta de estos pares clave-valor personalizados.

Siga los pasos a continuación para configurar las notificaciones automáticas para FCM. Antes de comenzar, asegúrese de tener acceso a la consola Firebase.

¡Vamos a sumergirnos! 💻

Paso 1: Obtener la clave del servidor para FCM

El servidor Sendbird requiere una clave de servidor FCM para enviar solicitudes de notificación a FCM en su nombre. Puede ver la clave de su servidor FCM de la siguiente manera:

1. Crea un nuevo proyecto de Firebase o usa el existente si ya lo tienes.consola Firebase

Iniciar sesión en Firebase

2. Abra su proyecto y navegue hasta 'Configuración del proyecto' como se muestra en la captura de pantalla.

Configuración del proyecto de Firebase

3. Vaya a 'Mensajería en la nube > Credenciales del proyecto y copie la clave de su servidor para utilizarla más adelante.

Copiar clave del servidor

Paso 2: Registrar la clave del servidor FCM en el panel de Sendbird

Registre la clave de su servidor en el servidor Sendbird a través del panel de control de la siguiente manera. Tenga en cuenta que la clave del servidor también se puede registrar mediante la acción agregar una configuración push de FCM de la API de la plataforma de chat.

y navegue hasta 'Configuración > Chatear > Notificaciones”.panel de Sendbird

Inicie sesión en el panel de Sendbird

2. Activa "Notificaciones" y selecciona la opción "Enviar a dispositivos cuando todos estén desconectados".

Activar las notificaciones

3. Haga clic en el botón "Agregar credenciales" junto a Credenciales de FCM. Ingrese la clave del servidor FCM copiada en el Paso 1.

Ingrese la clave del servidor FCM

Paso 3: Configurar una aplicación cliente FCM en tu proyecto Android

Ahora agregaremos las configuraciones y dependencias de FCM a su proyecto de Android. 

1. Vuelva a su proyecto en la consola FCM. Haga clic en 'Agregar aplicación' y seleccione la plataforma Android

Añade tu aplicación de Android

2. En el asistente Agregar aplicación, ingrese el nombre de su paquete. Sugerencia: el nombre de su paquete generalmente es "applicationId" en su archivo "build.gradle" a nivel de aplicación.

3. Descargue el archivo "google-services.json" y colóquelo en el directorio raíz del módulo de su aplicación de Android.

Descargue el archivo
4. Agregue la dependencia de la biblioteca de Android Cloud Messaging a su archivo build.gradle como se muestra a continuación:

Nota: la versión de firebase-messaging debe ser 19.0.1 o superior.

dependencies {    ...

    implementation 'com.google.firebase:firebase-messaging:20.1.0'

}

Paso 4: Registrar un token de push en el servidor de Sendbird

Para enviar mensajes de notificación a una aplicación cliente específica en un dispositivo Android, FCM requiere el token de registro de una instancia de aplicación, que la aplicación cliente ha emitido. Por lo tanto, el servidor Sendbird también necesita el token de registro de cada instancia de la aplicación cliente para enviar solicitudes de notificación a FCM en su nombre.

Tras la inicialización de su aplicación, el SDK de FCM genera un token de registro único y específico de la aplicación para la instancia de la aplicación cliente en el dispositivo de su usuario. FCM utiliza este token de registro para determinar el dispositivo al que se deben enviar los mensajes de notificación. Puede acceder a este token extendiendo 'com.sendbird.android.SendBirdPushHandler' y anulando 'onNewToken'. El 'SendBirdPushHandler' registra internamente este token en el servidor Sendbird.

Aquí está la implementación de muestra:

El token de inserción registrado aparece en el panel en 'Usuarios > ID_usuario > Charlar':

Token de inserción registrado

Paso 5: Añadir los manejadores de eventos push

Para recibir información del servidor Sendbird sobre eventos de notificaciones push para el usuario actual, registre una instancia de 'MyFireBaseMessagingService' en 'SendBirdPushHelper' como controlador de eventos. Haga esto en el método 'onCreate()' de la instancia 'Aplicación' de la siguiente manera:

Además, registre una instancia 'MyFireBaseMessagingService' cuando un usuario se conecte al servidor Sendbird de la siguiente manera:

Además, antes de desconectar al usuario del servidor Sendbird, cancele el registro de todos los tokens push para que no reciba ninguna notificación.

Paso 6: Manejar un payload de mensaje FCM

Como se describió anteriormente, el servidor Sendbird envía cargas útiles de notificaciones push como mensajes de datos FCM. La carga útil consta de dos propiedades: mensaje y sendbird. La propiedad del mensaje es una cadena generada de acuerdo con una plantilla de notificación que definió en el Panel de Sendbird. La propiedad sendbird es un objeto JSON que contiene toda la información sobre el mensaje que ha enviado un usuario.

Como se muestra en la implementación de muestra, en el paso 4, puede mostrar los mensajes analizados a los usuarios como una notificación utilizando su método personalizado 'sendNotification()'.

Consejos para solucionar problemas con notificaciones push

La solución de problemas de notificaciones push puede ser compleja; aquí hay algunos consejos para hacer esto.

  1. Para que a los desarrolladores les resulte más fácil depurar y solucionar problemas de notificaciones push, hemos creado una herramienta de prueba que puede resultarle útil. Consulte este tutorial para comprender cómo utilizar la herramienta, a la que puede acceder a través del panel de Sendbird
  2. Consulta esta guía completa para solucionar problemas de notificaciones push de chat de Android.
  3. Si desea depurar condiciones de falla, consulte los códigos de error de FCM.

Conclusión

¡Y eso es todo! Ahora sabes cómo enviar notificaciones automáticas para aplicaciones de Android con Sendbird Chat. Con la guía de este tutorial y los documentos, estarás en camino de enviar notificaciones push oportunas, relevantes y atractivas en poco tiempo.

Siempre estamos aquí para ayudar; contáctenos si tiene alguna pregunta, comentario o inquietud.

¡Feliz creación de notificaciones push! 💻 ¡Estamos ansiosos por ver lo que construyes!