3

I am trying to send push notifications to my android application using PHP server with Zend framework, but i am getting the HttpResponse as : The request could not be parsed as JSON or contains invalid fields, with the error code 400. I have used the server code as given in the demo of Zend framework, which is as follows :

<?php
require_once 'Zend/Mobile/Push/Gcm.php';
require_once 'Zend/Mobile/Push/Message/Gcm.php';

$regId = $_POST["registrationid"];

$message = new Zend_Mobile_Push_Message_Gcm();
$message->setId(time());
$message->addToken($regId);
$message->setData(array(
    'foo' => 'bar',
    'bar' => 'foo',
));

$gcm = new Zend_Mobile_Push_Gcm();
$gcm->setApiKey('my api key');

try {
    $response = $gcm->send($message);
} catch (Zend_Mobile_Push_Exception $e) {
    // all other exceptions only require action to be sent or implementation of exponential backoff.
    die($e->getMessage());
}

// handle all errors and registration_id's
foreach ($response->getResults() as $k => $v) {
    if ($v['registration_id']) {
        printf("%s has a new registration id of: %s\r\n", $k, $v['registration_id']);
    }
    if ($v['error']) {
        printf("%s had an error of: %s\r\n", $k, $v['error']);
    }
    if ($v['message_id']) {
        printf("%s was successfully sent the message, message id is: %s", $k, $v['message_id']);
    }
}
jigargm
  • 155
  • 3
  • 15

1 Answers1

0

I don't have my exact URL handy and I'm trying on my phone, but I touched on this recently in my blog. See http://www.rogerethomas.com What you will need is to use a browser API key, not a server one. Don't ask why but it seems there's an error with Googles documentation.

Edit: here's a recent link to my answer from another similar question: GCM with PHP (Google Cloud Messaging)

Community
  • 1
  • 1
Roger Thomas
  • 665
  • 4
  • 15