C2dmServer.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. require_once 'Zend/Mobile/Push/C2dm.php';
  3. require_once 'Zend/Mobile/Push/Message/C2dm.php';
  4. require_once 'Zend/Gdata/ClientLogin.php';
  5. try {
  6. $client = Zend_Gdata_ClientLogin::getHttpClient(
  7. 'my@gmail.com', // REPLACE WITH YOUR GOOGLE ACCOUNT
  8. 'myPassword', // REPLACE WITH YOUR PASSWORD
  9. Zend_Mobile_Push_C2dm::AUTH_SERVICE_NAME,
  10. null,
  11. 'myAppName' // REPLACE WITH YOUR APP NAME
  12. );
  13. } catch (Zend_Gdata_App_CaptchaRequiredException $cre) {
  14. // manual login is required
  15. echo 'URL of CAPTCHA image: ' . $cre->getCaptchaUrl() . PHP_EOL;
  16. echo 'Token ID: ' . $cre->getCaptchaToken() . PHP_EOL;
  17. exit(1);
  18. } catch (Zend_Gdata_App_AuthException $ae) {
  19. echo 'Problem authenticating: ' . $ae->exception() . PHP_EOL;
  20. exit(1);
  21. }
  22. $message = new Zend_Mobile_Push_Message_C2dm();
  23. $message->setId(time());
  24. $message->setToken('ABCDEF0123456789');
  25. $message->setData(array(
  26. 'foo' => 'bar',
  27. 'bar' => 'foo',
  28. ));
  29. $c2dm = new Zend_Mobile_Push_C2dm();
  30. $c2dm->setLoginToken($client->getClientLoginToken());
  31. try {
  32. $c2dm->send($message);
  33. } catch (Zend_Mobile_Push_Exception_InvalidToken $e) {
  34. // you would likely want to remove the token from being sent to again
  35. echo $e->getMessage();
  36. } catch (Zend_Mobile_Push_Exception $e) {
  37. // all other exceptions only require action to be sent or implementation of exponential backoff.
  38. echo $e->getMessage();
  39. }