Introducción a la mensajería en la nube de Google

Enviar mensajes descendentes desde la nube

Envíe un mensaje utilizando el protocolo del servidor de conexión HTTP de GCM:

  https://gcm-http.googleapis.com/gcm/send
  Content-Type:application/json
  Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
  {
    "to": "/topics/foo-bar",
    "data": {
      "message": "This is a GCM Topic Message!",
     }
  }

Para hacer esto en Postman, simplemente debe configurar lo siguiente (algunos detalles son como los mencionados anteriormente):

  1. Establezca el tipo de solicitud en POST
  2. En los Encabezados, establezca lo siguiente:
    • Content-Type = application/json
    • Authorization = < Your GCM Server Key >
  3. Establezca los parámetros de carga útil en el Cuerpo (en este ejemplo, usamos la opción sin formato, vea la captura de pantalla (2))
  4. Envíe la solicitud a https://gcm-http.googleapis.com/gcm/send

Capturas de pantalla:

(1) ingrese la descripción de la imagen aquí

(2) ingrese la descripción de la imagen aquí

Tenga en cuenta que la solicitud fue un éxito con message_id en la respuesta.

PD: mantendré visible la clave del servidor de muestra para que otros puedan probarla incluso si aún no han creado un proyecto. PERO, tenga en cuenta que la clave del servidor debe mantenerse siempre en secreto.

Manejo de mensajes descendentes en Android

Implemente onMessageReceived que captará la notificación enviada desde el servidor GCM.

  @Override
  public void onMessageReceived(String from, Bundle data) {
     String message = data.getString("message");
     Log.d(TAG, "From: " + from);
     Log.d(TAG, "Message: " + message);
     // Handle received message here.
  }

Manejo de mensajes descendentes en iOS

Para recibir la notificación, implemente application:didReceiveRemoteNotification:fetchCompletionHandler: (o application:didReceiveRemoteNotification: para iOS < 8.0) y llame a GCMService:appDidReceiveMessage:message para reconocer la recepción del mensaje en GCM.

- (void)application:(UIApplication *)application
    didReceiveRemoteNotification:(NSDictionary *)userInfo {
  NSLog(@"Notification received: %@", userInfo);
  // This works only if the app started the GCM service
  [[GCMService sharedInstance] appDidReceiveMessage:userInfo];
  // Handle the received message
  // ...
}

- (void)application:(UIApplication *)application
    didReceiveRemoteNotification:(NSDictionary *)userInfo
    fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler {
  NSLog(@"Notification received: %@", userInfo);
  // This works only if the app started the GCM service
  [[GCMService sharedInstance] appDidReceiveMessage:userInfo];
  // Handle the received message
  // Invoke the completion handler passing the appropriate UIBackgroundFetchResult value
  // ...
}