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).
https://tar.mx/tar.svg