6 minutos de lectura
0
Las notificaciones push son esenciales en aplicaciones modernas, ya que permiten comunicarse con los usuarios y mantenerlos informados en tiempo real. En este artículo, describiremos cómo implementar notificaciones push en una API utilizando JSON Web Tokens (JWT) y Firebase Cloud Messaging (FCM).
Asumiremos que ya has implementado la autenticación JWT en tu proyecto de ASP.NET Core 6; si no lo has hecho, te recomiendo leer el artículo "Cómo implementar JWT en ASP.NET Core 6" antes de continuar, ya que no abordaremos este tema aquí.
Para habilitar el envio de notificaciones push, es necesario
instalar los siguientes paquete: FirebaseAdmin
y Google.Apis.Auth.OAuth2
.
Puedes hacer esto atraves del gestor de paquetes de NuGet.
A continuación, debemos crear una sección en el archivo appsettings.json
con la información generada en Firebase Admin SDK.
Agrega la siguiente información en el archivo appsettings.json
:
Para enviar la información de la notificación,
debe crear una clase Notify.cs
en la carpeta Entities
.
Para crear y configurar el controlador de notificaciones, siga los pasos a continuación:
Cree el siguiente archivo Controllers/NotifyController.cs
y agregar el atributo [Authorize]
para asegurarnos que solo los usuarios autenticados o autorizados puedan acceder.
El constructor de NotifyController
inicializa la aplicación Firebase,
así como las credenciales necesarias para autenticar con Firebase.
Estas credenciales se obtienen a través de la configuración, que incluye la clave privada y el ID del proyecto.
Agregue el método PostNotify
, que será el punto de entrada para enviar
notificaciones push a los dispositivos de los usuarios. Este método debe aceptar un objeto Notify,
que contiene el título y el cuerpo de la notificación.
Dentro del método PostNotify
, se crea una lista de tokens de dispositivos
a los que se enviarán las notificaciones.
Se utiliza la clase FirebaseMessaging
para crear un objeto MulticastMessage
,
que incluye la notificación y la lista de tokens. Luego, se envía el mensaje utilizando
el método SendMulticastAsync
.
Si se encuentra un error al enviar las notificaciones, el controlador registra el error en la consola por cada token, junto con el mensaje de error. Si el envío es exitoso, se retorna una respuesta con el número de mensajes enviados correctamente y el número de mensajes que no pudieron ser enviados.
En caso de que ocurra una excepción no relacionada con el envío de notificaciones, se captura con un bloque catch y se retorna un código de estado 500 con el mensaje de error.
Este artículo presentó un enfoque paso a paso para implementar notificaciones push en una API utilizando JWT y Firebase Cloud Messaging. El ejemplo de código proporcionado es un excelente punto de partida para implementar notificaciones push en su propia aplicación. Al integrar estas funcionalidades, podrá mantener a sus usuarios informados y comprometidos con su aplicación.
A continuación, se muestra el código completo del controlador de notificaciones:
Si tienes alguna pregunta, sugerencia o comentario, no dudes en dejar un comentario en la sección de abajo. Nos encantaría conocer tus opiniones y responder a tus dudas. Además, si este artículo te resultó útil e informativo, por favor compártelo con tus colegas y amigos.
¡Gracias por leer y hasta la próxima!
Si lo deseas, puedes apoyarme con una donación voluntaria. Tu aporte me permite dedicar más tiempo a investigar, escribir y mejorar la calidad del contenido que publico. ¡Muchísimas gracias por considerar impulsar este proyecto!
Compartir en: