public function testSetData() { $data = array('key' => 'value'); $data2 = array('key2' => 'value2'); $msg = new Zend_Mobile_Push_Message_Gcm(); $msg->setData($data); $this->assertEquals($data, $msg->getData()); $msg->setData($data2); $this->assertEquals($data2, $msg->getData()); }
/** * 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); } } }
<?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']); } }