Пример #1
0
 /**
  * Send message.
  *
  * @throws Tiqr_Message_Exception_AuthFailure
  * @throws Tiqr_Message_Exception_SendFailure
  */
 public function send()
 {
     $service = self::_getService($this->getOptions());
     $data = $this->getCustomProperties();
     $data['text'] = $this->getText();
     $message = new Zend_Mobile_Push_Message_Gcm();
     $message->addToken($this->getAddress());
     $message->setId($this->getId());
     // TODO: GCM equivalent needed?
     $message->setData($data);
     try {
         $response = $service->send($message);
     } catch (Zend_Htpp_Client_Exception $e) {
         throw new Tiqr_Message_Exception_SendFailure("HTTP client error", true, $e);
     } catch (Zend_Mobile_Push_Exception_ServerUnavailable $e) {
         throw new Tiqr_Message_Exception_SendFailure("Server unavailable", true, $e);
     } catch (Zend_Mobile_Push_Exception_InvalidAuthToken $e) {
         throw new Tiqr_Message_Exception_AuthFailure("Invalid token", $e);
     } catch (Zend_Mobile_Push_Exception_InvalidPayload $e) {
         throw new Tiqr_Message_Exception_SendFailure("Payload too large", $e);
     } catch (Zend_Mobile_Push_Exception $e) {
         throw new Tiqr_Message_Exception_SendFailure("General send error", false, $e);
     }
     // handle errors, ignoring registration_id's
     foreach ($response->getResults() as $k => $v) {
         if (isset($v['error'])) {
             throw new Tiqr_Message_Exception_SendFailure("error in GCM response: " . $v['error'], true);
         }
     }
 }
Пример #2
0
 public function testTokens()
 {
     $msg = new Zend_Mobile_Push_Message_Gcm();
     $msg->setToken('foo');
     $this->assertEquals(array('foo'), $msg->getToken());
     $msg->setToken(array('foo', 'bar'));
     $this->assertEquals(array('foo', 'bar'), $msg->getToken());
     $msg->setToken('bar');
     $msg->addToken('foo');
     $this->assertEquals(array('bar', 'foo'), $msg->getToken());
     $msg->clearToken();
     $this->assertEquals(array(), $msg->getToken());
 }
Пример #3
0
<?php

require_once 'Zend/Mobile/Push/Gcm.php';
require_once 'Zend/Mobile/Push/Message/Gcm.php';
$message = new Zend_Mobile_Push_Message_Gcm();
$message->addToken('ABCDEF0123456789');
$message->setData(array('foo' => 'bar', 'bar' => 'foo'));
$gcm = new Zend_Mobile_Push_Gcm();
$gcm->setApiKey('YOUR_API_KEY');
try {
    $response = $gcm->send($message);
} catch (Zend_Mobile_Push_Exception $e) {
    // exceptions require action or implementation of exponential backoff.
    die($e->getMessage());
}
// handle all errors and registration_id's
foreach ($response->getResults() as $k => $v) {
    if (isset($v['registration_id'])) {
        printf("%s has a new registration id of: %s\r\n", $k, $v['registration_id']);
    }
    if (isset($v['error'])) {
        printf("%s had an error of: %s\r\n", $k, $v['error']);
    }
    if (isset($v['message_id'])) {
        printf("%s was successfully sent the message, message id is: %s", $k, $v['message_id']);
    }
}