Notificaciones Push en Android (Implementación del Servidor)

May 12, 2014 | Android | 0 Comentarios

Cómo ya vimos en el post anterior Notificaciones Push en Android (Introducción), Google ofrece un servidor gratuito desde el cuál gestionar las notificaciones push llamado GCM.

En este post vamos a tratar de explicar la implementación de un servidor desde el cuál podamos enviar las notificaciones al GCM y que éste las envíe a la lista de dispositivos Android que le pasemos (utilizando el token para identificarlos).

Para implementar el servidor vamos a hacer uso de PHPCURL y JSON.

El servidor se va a encargar de dos tareas:

  1. Registrar a los dispositivos móviles Android que se dan de alta en el GCM para esa aplicación móvil.
  2. Enviar al GCM la notificación que quieres sea enviada y los tokens de los dispositivos a los que quieres sea enviada.

Nosotros vamos a centrarnos en el segundo punto, ya que para el primer punto en principio es más sencillo. Sería recibir desde el dispositivo móvil Android una petición de alta en el servicio de notificaciones que queremos crear. Indicando el token del dispositivo y otros datos que puedan ser de nuestro interés para, por ejemplo, crear filtros a la hora de enviar notificaciones.

Vamos pues a definir nuestro servidor:

Notificaciones Push en Android (Implementación del Servidor)

En la imagen anterior se puede ver el código de la función necesaria para enviar una notificación. Suponemos que tenemos los usuarios guardados en la BD, y que hemos guardado los tokens de los dispositivos móviles Android guardados en la variable registrations_ids y que tenemos una clase llamada Notificacion en la cuál tenemos los campos titulo y notificacion.

Lo primero que hacemos es definir la dirección a la que se va a enviar la notificación. Los mensajes se envían mediante peticiones HTTP POST a la API de GCM.

https://android.googleapis.com/gcm/send

A continuación vamos a crear una marca de tiempo, la cual asignaremos a la variable collapse_key. Ésta variable, como se comenta en el código, se la va a utilizar el GCM para que si al enviar un mensaje a un dispositivo, éste se encuentra apagado lo guarda en la cola. Cuando vaya a enviar de nuevo el mensaje va a recibir uno sólo, no n mensajes (siendo n el número de intentos de envío de la notificación).

Posteriormente hemos guardado en una variable nuestra api_key. Ahora vamos a pasar a guardar el contenido. El campo fields almacenará por una parte los tokens de los dispositivos y por otra el contenido de la notificación. El contenido de la notificación lo hemos dividido en las variables comentadas anteriormente titulo y notificacion.

Ya tenemos el contenido, ahora tenemos que crear la cabecera en la que incluiremos la api_key  y el tipo de mensaje que envíamos, que es application/json. 

Por último:

  • Iniciamos sesión en CURL
  • Introducimos la dirección web a la que va dirigida la petición
  • Decimos que es  de tipo POST normal.
  • Introducimos las cabeceras.
  • Introducimos el contenido.
  • Enviamos el mensaje y recibimos la respuesta. Esta respuesta aunque en la imagen no se procesa, nos podría sevir para depurar posibles errores y comprobar si el mensaje ha sido recibido por parte del GCM correctamente.
  • Cerramos sesión en CURL.

 

 

Como hemos podido comprobar, la implementación de la parte del servidor para el envío de las notificaciones push a dispositivos Android es bastante sencilla de llevar a cabo.

A partir de aquí ya estamos en disposición de enviar notificaciones push a un dispositivo.

En el próximo post hablaremos de la implementación del cliente, con el cuál cerraremos esta serie de post relativos a notificaciones push en Android.

El código fuente lo proporcionaremos en el siguiente post, en el que uniremos ambas partes, la implementación del cliente y la del servidor.

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

.Estás en el punto de partida?

Contacta con nosotros y cuéntanos tu proyecto.

Mapa de ubicación dentro de la sección método App&Web
Estamos en:

C/ Gracia, 12 1ª Planta Granada (18004) Granada

623 02 64 34

 contacto@appandweb.es

Follows
Shares
Share This
¿Necesitas ayuda?