2013-08-21 1 views
0

Nous avons une configuration d'application avec UrbanAirship. UrbanAirship montre (sous Rapports-> Statistiques), nous avons environ 1,5 millions d'appareils enregistrés.UrbanAirship: Liste des périphériques L'API renvoie beaucoup plus de jetons de périphériques que réellement enregistrés

Nous souhaitons passer au service de notification push interne et donc exporter des identifiants de jeton d'unité depuis UAS. Pour cela, j'utilise API Device Listing des UAS pour exporter le jeton ids de l'appareil: http://docs.urbanairship.com/reference/api/v3/device_information.html#device-token-list-api

J'utilise le client REST qui est fourni par la SAMU pour faire des appels REST sous-jacents. Je pagine à travers les jetons de périphériques pour récupérer tous les jetons de périphériques. Mon code PHP est toujours en cours d'exécution et a rassemblé environ 46 millions de jetons jusqu'à maintenant. Est-ce que je fais une erreur en utilisant l'API Device Listing? Quelqu'un a-t-il réussi à utiliser l'API Device Listing pour récupérer des jetons de périphérique auprès de UAS?

Je colle mon code en PHP qui récupère et imprime les jetons. Cela utilise leur client PHP REST fourni par UAS dans leur documentation.

public function getTokens() { 
    $this->client = new Airship($app_key, $app_secret); 
    $airshipDeviceList = $this->client->get_device_tokens(); 
    //print_r($airshipDeviceList->count()); 
    //exit; 

    $i = 0; 
    while(true) { 
     $current_page = $airshipDeviceList->_page; 
     print_r($current_page); 
     exit; 

     if(isset($current_page->device_tokens)) { 
      $tokens = $current_page->device_tokens; 

      foreach($tokens as $token) { 
       print_r("\n $i : "); 
       print_r($token->device_token); 
       $i++; 
      } 
      $next_page_url = $current_page->next_page; 
      $airshipDeviceList->_load_page($next_page_url); 
     } else { 
      break; 
     } 

     break; 
    } 
} 

Répondre

0

Je l'ai trouvé moi-même. "$ current_page" n'a pas vraiment paginé sur les jetons. Il s'agissait en fait d'agréger N + 1 pages (toutes les pages plus la page actuelle). En conséquence, je recevais n jetons en première page, 2 jetons en deuxième page, 3 jetons en troisième page et ainsi de suite.

J'ai changé la bibliothèque REST d'UAS et l'ai fixée pour renvoyer SEULEMENT des jetons de PAGE COURANTE dans $ current_page. Problème résolu!

Questions connexes