Buenas drupaleros,
hoy vamos a dar unas pinceladas de cómo desarrollar notificaciones push para sistemas Android y iOS desde nuestro Drupal.
Debemos distinguir entre notificaciones push a sistemas Android y iOS. Utilizaremos distintos módulos y configuraciones para las distintas plataformas.
Necesitaremos cuatro módulos
Lo primero que debemos hacer es instalar y activar el módulo Services, recordemos que el módulo services tiene dependencia Ctools. Debemos activar también el submódulo REST SERVER.
Lo siguiente sería activar el módulo push notifications y libraries.
Seguidamente lo que debemos hacer es un crear endpoint en el REST SERVICES. Lo haremos desde la configuración del submódulo que hemos comentado. Debemos asignarle nombre al nuevo endpoint, seleccionar en tipo de server REST, el path y guardar. Ahora editaremos los recursos y en el endpoint que hemos creado activaremos el “crear y borrar”. Ahora ya se pueden crear y borrar token
Cofiguración Firebase
Lo primero será obtener la Firebase Server Key que será a que nos permita enviar notificaciones push. Una vez obtenida la deberemos introducir en la configuración del módulo la Key y el Firebase endpoint
Apple Store
En el Apple Store debemos generar el certificado y registrar ID de la APP. Recuerda que debe ser un fichero .pem y lo debes subir /tusitio/sites/all/modules/push_notifications/certificates
Uno de los problemas del módulo push notificacations, es que soporta Supports GCM (Google Cloud Messaging), Supports C2DM (Cloud 2 Device Messaging), pero no Firebase. Por lo que nosotros decidimos hacer un patch, para que enviase a través del módulo Firebase.
Para enviar las notificaciones, lo debes hacer desde la opción del módulo push notificacations, “Send push”. Seleccionaremos los destinatarios y el idioma (si procede)
Como habéis podido observar, es una explicación a grandes rasgos de cómo utilizando una serie de módulos contribuidos podemos desarrollar notificaciones push desde nuestro Drupal 7
Seguramente en otro post entraremos más en detalle en los problemas que nos hemos encontrado y comentaremos el código que tuvimos que desarrollar para unificar el funcionamiento.