Google Cloud Messaging. Parte II: Activación del servicio

The Google Cloud Messaging (GCM) guide can be found here and is available in English, therefore I am writing these related posts in Spanish.

Esta es la parte II de un conjunto de entradas sobre Google Cloud Messaging (GCM).


En esta parte vamos a ver cómo activar el servicio de GCM en nuestra cuenta de desarrollador y así poder obtener las claves iniciales que vamos a necesitar:

  • Server ID. Este es el identificador que usa la aplicación Android en el proceso de registro.
  • Sender Auth Token. API key que debe almacenar nuestro servidor para usar los servicios de GCM.

1.  Para poder usar el sistema de GCM hay que crear un nuevo proyecto en la consola de Google APIs. Si no tenemos un proyecto anterior creado nos aparecerá el siguiente cuadro, desde donde pulsamos el botón “Create project…”.

Google API first project

Si ya teníamos un proyecto previo, podemos crear uno nuevo desde el desplegable de la parte izquierda llamado “API Project”. Seleccionamos la opción de “Create…” dentro de “Other projects”

Google APIs create project

El identificador del nuevo proyecto creado es nuestro Sender ID. Este identificador lo consultamos desde el panel “Overview” indicado como “Project Number”.

Google APIs ID

2.  Para activar el servicio GCM, desde el panel de “Services” buscamos “Google Cloud Messaging” y lo activamos. Aceptamos los términos que nos aparecen y listo. Ahora en la pestaña de servicios activos (“Active”) deberá aparecernos el servicio de GCM.

Google APIs active services

3.  Para obtener una API key, desde el panel “API Access” seleccionamos la opción “Create new Browser key…”. Con una clave de este tipo es suficiente. Una clave de servidor (“Server key”) nos permite restringir por la IP de nuestros servidores. Las claves de navegador (“Browser key”) permite restringir por HTTP referer.

Google APIs browser key

Leer Más

Google Cloud Messaging. Parte I: Introducción

The Google Cloud Messaging (GCM) guide can be found here and is available in English, therefore I am writing these related posts in Spanish.

La documentación oficial podemos verla aquí y se encuentra disponible en inglés, por lo que he decidido escribir esta serie de posts en español.

Esta es la parte I de un conjunto de entradas sobre Google Cloud Messaging (GCM).

Google Cloud Messaging (GCM) para Android es un servicio gratuito que nos permite enviar información desde nuestro servidor a un dispositivo Android. El servicio GCM controla todo lo relacionado con el almacenamiento en cola de los mensajes y su entrega a las aplicaciones.

Características básicas

  • Para que una aplicación reciba mensajes, no es necesario que ésta se encuentre ejecutándose, sino que el sistema la despertará cuando el mensaje llegue.
  • GCM pasa la información recibida directamente a la aplicación, la cual tiene control total sobre ella.
  • Requiere dispositivos con Android 2.2 o superior que tengan instalada la aplicación de Google Play Store o un emulador con Google APIs.
  • Hace uso de una conexión existente a los servicios de Google. Es necesario que los usuarios tengan configurada su cuenta de Google en el dispositivo. Esta cuenta de Google no es un requisito para los dispositivos con Android 4.0.4 o superior.

Componentes que intervienen

Dispositivo móvil
Servidores GCM
Servidor de terceros

Proceso

A continuación se muestran los pasos necesarios para que finalmente un mensaje pueda llegar a un dispositivo móvil Android.

  1. La aplicación se registra en el dispositivo móvil para recibir mensajes. Se realiza lanzando el Intent de registro “com.google.android.c2dm.intent.REGISTER“, que incluye el Sender ID y el Application ID.
  2. Si el registro ha terminado correctamente, el servidor GCM lanza un Intent “com.google.android.c2dm.intent.REGISTRATION” para devolver el Registration ID.
  3. La aplicación envía el Registration ID al servidor de terceros (nuestro servidor) para que sea guardado.
  4. Nuestro servidor ya puede enviar un mensaje para que sea recibido por el dispositivo. El servidor envía el mensaje a los servidores GCM, donde es puesto en cola.
  5. Google envía el mensaje al dispositivo cuando se encuentre accesible.
  6. El dispositivo lanza el mensaje a la aplicación especificada mediante un Intent “com.google.android.c2dm.intent.RECEIVE“, y ésta procesa el mensaje sin necesidad de que estuviera ejecutándose previamente.

Proceso GCM

Credenciales

En el proceso visto anteriormente han aparecido varios identificadores.

  • Sender ID. Se usa en el proceso de registro para identificar una aplicación Android a la cual se le permiten enviar mensajes al dispositivo. Se obtiene desde la página de Google de APIs Console.
  • Application ID. Identificador de la aplicación que se está registrando para recibir mensajes. Se trata del nombre del paquete de la aplicación indicado en el archivo manifest.
  • Registration ID. Identificador enviado por los servidores GCM a la aplicación como respuesta a una solicitud de registro. Este identificador debe ser enviado a nuestro servidor para identificar cada dispositivo que se ha registrado para recibir mensajes. Está asociado a una aplicación concreta existente en un dispositivo concreto.
  • Sender Auth Token. Clave que debe almacenar tu servidor para poder acceder a los servicios de Google.

Leer Más