Red de publicación y opinión profesional
Política · Economía · Sociedad · Cultura · Ciencia · Tecnología ·
Últimas etiquetas:   Libros   ·   Escritores   ·   Reseña   ·   Periodismo   ·   Novela   ·   Lectores   ·   Psicología   ·   Poesía   ·   Lectura   ·   Trastorno de Personalidad



Notificaciones Push con GCM y PHP


Inicio > Informática
11/07/2012

10030 Visitas



Para empezar, aunque vamos a centrarnos en las notificaciones desarrolladas por Google, deciros que hemos utilizado una librería con posibilidades de expansión a productos de Apple y Microsoft de forma muy sencilla.


Sin duda, si eres programador o Geek tecnológico, si te interesan las “Push Notifications” y/o has programado o tienes previsto programar Apps que hagan uso de esta forma de comunicación, seguramente te interese este artículo. Hablaremos de como hemos hecho para ahorrar en infraestructura evitando utilizar servicios Java y sustituyendo por el lenguaje estándar “de facto” en los servicios web como es PHP.

Hoy toca hablar un poquito de los últimos movimientos que se están consolidando entorno al desarrollo sobre movilidad. En esta ocasión os presentamos la implementación de las “Push Notification” que han hecho los chicos de Google y nuestra adaptación a un entorno ligero. Bastante expectación hubo en los círculos de desarrolladores entorno a Google I/O 2012 que tuvo lugar los días 27 y 28 de Junio de 2012. En este evento fue donde presentaron la maduración de un proyecto bastante interesante llamado Google Cloud Messaging, maduración del ya antiguo C2DM.



Para los profanos en la materia, decir que con el sistema GCM podremos llevar a nuestras plataformas móviles los desarrollos propios que implementen o hagan uso de las llamadas “Push Notification” o “Mensajes Push”. Ahora está en boca de todos hablar sobre estos temas pero, exactamente ¿qué quiere decir notificaciones push?. Pues no sabemos si exactamente o no, pero lo que debemos de tener muy claro es que es una forma de programar que se ideó justo cuando salieron al mercado los actuales gestores de correo. Es la forma en la que las Apps clientes son informadas sobre ciertas novedades o eventos evitando tener que consultar el estado del buzón de forma automática. Pues bien, ¿Qué conseguimos con ello? En primer lugar ahorramos en la tarifa de datos, pues las consultas al servidor se harán de forma pasiva, solo se realizarán cuando el servidor tenga algo nuevo que decir; en segundo lugar, y como es lógico pensar, ahorraremos en el consumo de batería, pues se hace un uso optimizado de los recursos del teléfono.

Pues bien, ¿Cómo implementamos esta maravilla? Como siempre, lo mejor es visitar la web del fabricante. Si necesitamos “ir al grano” recomendaría que le echarais un vistazo al proyecto demo. Aquí nos dicen como construir una App para Android que haga uso de un servicio GCM implementado con Servlet de Java que corren sobre un Tomcat. Pues bien, a continuación describiremos la traducción a lenguaje PHP precisamente de este último proyecto. Es decir, con la misma App Android podremos hacer uso de un servicio web hecho con tecnología mucho más barata, ya que los requisitos de hardware para correr este tipo de aplicaciones de servidor son mucho menores no restando en absoluto calidad alguna.

Más abajo adjuntamos los fuentes que vamos a describir a continuación. El archivo comprimido dispone de los siguientes directorios y ficheros:

library → Contiene las clases del Zend Mobile, en breve irán incorporandolas a Zend Framework, el famoso paquete de software PHP.

utils → Fuentes que hacen uso de las clases anteriores y de MySQL para proveer servicios accesibles y amigables.

conexion.php → Como su nombre indica, nos da el acceso a la base de datos donde se almacenarán los dispositivos registrados en el sistema y que serán los que deben ser informados de cualquier evento.

GCMConfiguration.php → Define todas las variables necesarias para poder conectarnos con la base de datos y el servicio GCM de Google.

GCMUtils.php → Librería de funciones que harán la escritura de código más cómoda. Es una abstracción de las clases de Zend Mobile.

GcmServer → Sencillo script al que llaman los terminales móviles para indicar al servidor que se suscriben al servicio GCM. Básicamente lo que hacemos es asociar un terminal a una huella. En caso de que el servidor tuviera nueva información que notificar utilizaría el stock de huellas e iría informando a cada una de ellas.

SendingMessageFromBrowser.php → Script al que se accede vía web y que informa del número de huellas registradas en nuestro servicio. Dispone de un botón con el que se envía un mensaje con contenido de prueba.

Una vez entendidos los requisitos que suplen los scripts señalar que las funciones más interesantes que se utilizan son las siguientes.

getRegisteredDevices() → Devuelve un array con los dispositivos registrados. No tiene parámetros.

sendGCM($registeredDeviceID, $valuesTOGCMMessage) → Método utilizado para enviar notificaciones. El primer parámetro es una cadena y puede recibir, o bien el senderID (consulta la documentación oficial de GCM) o la huella registrada. El segundo espera un Array. Este representa el mensaje que se envía.

Y con esto acaba nuestra pequeña aportación. Agradecer al creador de Zend Mobile (@mwillbanks) el apoyo que hemos recibido para montar este proyecto y a Jaro (@jampgold) por evitar que nos diluyamos entre las mil y una posibilidades que nos ofrece PHP. Esperamos que os haya gustado. Conscientes de que todo es mejorable, no te cortes, envía tu comentario y no dejes de visitar www.yinyan.es.

Descarga el proyecto aquí.





Etiquetas:

Compartir
Tu nombre:

E-mail amigo:
Enviar
PDF

15 comentarios  Deja tu comentario


, error 404 al intentar descargar el proyecto


Claudio Suriano, Fer antes que nada muchísimas gracias por colaborar con semejante aporte!!
Recien anduve haciendo un test y surgio el siguiente error al ejecutar el archivo SendingMessageFromBrowser.php

Fatal error: Interface 'Zend\Stdlib\DispatchableInterface' not found in /home/u747710565/public_html/library/Zend/Http/Client.php on line 23
De hecho yo baje la libreria del ZendFramework 2.2.0

En esta direccion vas a encontrar lo que estoy armando a modo test http://helioninteractive.pusku.com/
Que puede estar faltando?

Saludos! Claudio.


Fernando La Chica Mera, Informática Ni idea, revisa los log de apache que seguramente la traza sea más grande y la clave no esté en el fichero client.php


, gracias ya lo descargue ahora me marca esto: unexpected T_STRING in Zend\Http\Client.php on line 11 alguna idea??


Fernando La Chica Mera, Informática Deberás descargarte el Framework Zend




Los más leídos de los últimos 5 días

Comienza
a leer


Un espacio que invita a la actualidad e información
 

Publica tus artículos


Queremos ser tus consejeros y tu casa editorial

Una comunidad de expertos


Rodéate de los mejores y comienza a influir
 

Ayudamos a tu negocio


El lugar y el momento adecuado donde debes estar
Secciones
18727 publicaciones
4726 usuarios
Columnas destacadas
Los más leídos
Mapa web
Categorías
Política
Economía
Sociedad
Cultura
Ciencia
Tecnología
Conócenos
Quiénes somos
Cómo publicar en Reeditor
Contacto
Síguenos


reeditor.com © 2014  ·  Todos los derechos reservados  ·  Términos y condiciones  ·  Políticas de privacidad  ·  Diseño web sitelicon.com  ·  Únete ahora