Esempio n. 1
0
 /**
  * @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);
 }
Esempio n. 2
0
 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');
                     }
                 }
             }
         }
     }
 }
Esempio n. 3
0
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;
        }
    }
}