2017-01-20 1 views
2

Avant la dernière mise à jour d'Itunes Connect, toutes les requêtes étaient des requêtes HTTP effectuées via Curl dans notre application. Après la mise à jour, Apple recommande d'utiliser leur nouvel outil de journaliste.Est-il encore possible d'utiliser les points de terminaison de l'API Itunes Connect au lieu de l'outil Java Reporter?

https://github.com/mikebarlow/itc-reporter Je veux faire quelque chose de similaire à ceci si possible. Cela fonctionne supposément sans l'outil de journaliste et il semble que ce soit encore juste en faisant des requêtes HTTP. Je n'utiliserai pas ce code dans mon projet car il nous oblige à mettre à jour la version de PHP que nous avons prévue pour une autre fois.

Est-il possible de faire des requêtes HTTP simples en utilisant Curl pour obtenir des données? Je ne veux pas utiliser Guzzle si je n'ai pas à le faire!

$json = '{"userid":"{{USERNAME}}","password":"{{PASSWORD}}","version":"2.0","mode":"Robot.XML","account":"{{VENDOR_ID}}","queryInput":"[p=Reporter.properties, Sales.getReport, {{VENDOR_ID}},Sales,Summary,Weekly,20170108]"}' 

CURLOPT_URL => 'https://reportingitc-reporter.apple.com/reportservice/sales/v1', 
CURLOPT_HEADER => false, 
CURLOPT_HTTPHEADER => array('Accept: text/xml, text/plain', 'Content-Type: text/xml, text/plain'), 
CURLOPT_USERAGENT => 'Java/1.8.0_92', 
CURLOPT_TIMEOUT => 10, 
CURLOPT_SSL_VERIFYPEER => false, 
CURLOPT_POST => true, 
CURLOPT_POSTFIELDS => $json, 

c'est la demande que je l'ai fait lors des tests et quand je le lance je reçois la réponse HTML disant « Interdit, vous n'avez pas accès à cette page »

J'ai essayé en urlencodage nom d'utilisateur et mot de passe mais j'obtiens le même résultat. J'aimerais pouvoir toujours obtenir ces données en utilisant Curl ou nous devrons travailler sur l'ajout de l'outil reporter dans notre application.

Répondre

0

le postfield juste besoin d'être changé en conséquence

function build_json_request(, $access_token, $account_id, 
$args_arr=array()) 
{ 
    $args = $args_arr; 

    $json = array(
     'accesstoken' => urlencode($access_token), 
     'version' => '2.2', 
     'mode'  => 'Robot.XML', 
     'account' => $account_id 
    ); 

    $queryInput = array(
     'p=Reporter.properties', 
     array_shift($args) 
    ); 

    if(! empty($args)) 
     $queryInput[] = implode(',', $args); 

    $json['queryInput'] = '[' . implode(', ', $queryInput) . ']'; 

    return json_encode($json); 
} 

$json = build_json_request('Sales.getReport', $access_token, $account_id, array('Sales.getReport', $vendor_id, 'Sales', 'Summary', 'Daily', $date)); 

    $output = process_curl(array(
     CURLOPT_URL => 'https://reportingitc-reporter.apple.com/reportservice/sales/v1', 
     CURLOPT_HEADER => false, 
     CURLOPT_TIMEOUT => 10, 
     CURLOPT_SSL_VERIFYPEER => false, 
     CURLOPT_POST => true, 
     CURLOPT_POSTFIELDS => 'jsonRequest='.$json, 
    ));