String describing an error that occurred while processing the message for that recipient. The possible values are the same as documented in the above table, plus “Unavailable” (meaning GCM servers were busy and could not process the message for that particular recipient, so it could be retried).
I’ve got a service set up already that seems to be working (ish), and so far all I’ve had back are unavailable returns from Google. More than likely this will change soon.
To answer the question, use PHP, make sure the Zend Framework is in your include path, and use this code:
<?php ini_set('display_errors',1); include"Zend/Loader/Autoloader.php"; Zend_Loader_Autoloader::getInstance(); $url = 'https://android.googleapis.com/gcm/send'; $serverApiKey = "YOUR API KEY AS GENERATED IN API CONSOLE"; $reg = "DEVICE REGISTRATION ID"; $data = array( 'registration_ids' => array($reg), 'data' => array('yourname' => 'Joe Bloggs') ); print(json_encode($data)); $client = new Zend_Http_Client($url); $client->setMethod('POST'); $client->setHeaders(array("Content-Type" => "application/json", "Authorization" => "key=" . $serverApiKey)); $client->setRawData(json_encode($data)); $request = $client->request('POST'); $body = $request->getBody(); $headers = $request->getHeaders(); print("<xmp>"); var_dump($body); var_dump($headers);
And there we have it. A working (it will work soon) example of using Googles new GCM in Zend Framework PHP.