/** * @expectedException \CodeMonkeysRu\GCM\Exception * @expectedExceptionCode 3 */ public function testPayloadNotificationSizeCheck() { $sender = new \CodeMonkeysRu\GCM\Sender("MY API KEY ))"); $notification = array('key' => str_repeat('x', 2048)); $message = (new \CodeMonkeysRu\GCM\Message())->setNotification($notification); $sender->send($message); }
private static function sendToAndroid($token, $message) { $sender = new CodeMonkeysRu\GCM\Sender('AIzaSyBgiyWjX2JSzVWsSz8GcMgMnCs7F5ZEgjo'); $message = new CodeMonkeysRu\GCM\Message([$token], array('message' => $message)); /* $message ->setCollapseKey("collapse_key") ->setDelayWhileIdle(false) ->setTtl(20) ->setRestrictedPackageName("ru.appkode.yol") ->setDryRun(true) ; */ try { $response = $sender->send($message); if ($response->getFailureCount() > 0) { self::log(sprintf('Sending of android token %s returns error', $token)); } else { self::log('Push is sent'); } } catch (CodeMonkeysRu\GCM\Exception $e) { if ($e->getCode() == CodeMonkeysRu\GCM\Exception::ILLEGAL_API_KEY) { self::log('Illegal android api key'); } else { if ($e->getCode() == CodeMonkeysRu\GCM\Exception::AUTHENTICATION_ERROR) { self::log('Authentication android error'); } else { if ($e->getCode() == CodeMonkeysRu\GCM\Exception::MALFORMED_REQUEST) { self::log('Malformed android request'); } else { if ($e->getCode() == CodeMonkeysRu\GCM\Exception::MALFORMED_RESPONSE) { self::log('Malformed android response'); } else { self::log('Android unknown error'); } } } } } }
function SendAndroid($tokens, $text, $config) { # Создаём поток для отправки с использование API ключа $sender = new \CodeMonkeysRu\GCM\Sender($config['gcm']['apikey']); # Создаём сообщение для указаных токенов $message = new \CodeMonkeysRu\GCM\Message($tokens, array("message" => $text)); # Производим попытку рассылки сообщений try { # Выполняем рассылку $response = $sender->send($message); # Если возникли ошибки if ($response->getFailureCount() > 0) { # Проверяем недействительные токены $invalidRegistrationIds = $response->getInvalidRegistrationIds(); foreach ($invalidRegistrationIds as $invalidRegistrationId) { # Если найден недействительный токен, удатяем его из БД DeleteToken($invalidRegistrationId); } } # Выводим информационное сообщение if ($response->getSuccessCount()) { echo 'Отправлено сообщений на ' . $response->getSuccessCount() . ' устройств(а).'; } } catch (\CodeMonkeysRu\GCM $e) { # Вылавливаем возникшие исключения switch ($e->getCode()) { case CodeMonkeysRu\GCM\Exception::ILLEGAL_API_KEY: case CodeMonkeysRu\GCM\Exception::AUTHENTICATION_ERROR: case CodeMonkeysRu\GCM\Exception::MALFORMED_REQUEST: case CodeMonkeysRu\GCM\Exception::UNKNOWN_ERROR: case CodeMonkeysRu\GCM\Exception::MALFORMED_RESPONSE: echo 'Ошибка отправки на Android ' . $e->getCode() . ' ' . $e->getMessage(); break; } } }