Enviar mensajes a Google Cloud Messaging con PHP

Si tenemos algún proyecto en Android y ya hemos configurado la parte de recibir mensajería instantánea (push) con Google GCM, falta la parte del envío de los mensajes. En el siguiente ejemplo, se muestra como hacerlo con PHP:

$api = 'API_KEY'; //our api key from Google GCM
function envia() {
   global $api;
   $headers = array("Content-Type:" . "application/json", "Authorization:" . "key=" . $api);
   $ids = func_get_arg(0);
   $data = func_get_arg(1);
   $datas = array(
      'data' => $data,
      'registration_ids' => $ids,
   );
   $ch = curl_init();
   curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); 
   curl_setopt( $ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send" );
   curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );
   curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
   curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
   curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($datas) );
   $response = curl_exec($ch);
   curl_close($ch);
  return $response;
}
$k = "DEVICE_ID_REGISTERED";
$enviar = Array('message'=>'test'); //text to send
$tmp = envia(array($k),$enviar);
print_r(json_decode($tmp)); //print GCM results

Si el mensaje fue enviado con éxito, entonces nos debería aparecer en el resultado algo como lo siguiente:

stdClass Object
(
    [multicast_id] => 8939194202085041935
    [success] => 1
    [failure] => 0
    [canonical_ids] => 0
    [results] => Array
        (
            [0] => stdClass Object
                (
                    [message_id] => 0:9258962092242801%bb285fc5f9fd7ecd
                )

        )

)

Poner atención a la variable 'success' donde indicaría que el menaje fue enviado con éxito. Este ejemplo muestra como enviar el mensaje a un dispositivo con PHP, debe tener instalada la extensión curl (casi cualquier distribución ya la trae).

Android, Desarrollo Móvil

Escrito un miércoles 23 de enero, 2013 :)

¿Algo que comentar?


Populares estos días

    Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊


    tar.mx es un blog personal de Jorge Martínez Mauricio