Можно ли по-прежнему использовать конечные точки API Itunes Connect вместо инструмента Java Reporter?
До последнего обновления Itunes Connect все запросы были HTTP-запросами, сделанными через Curl в нашем приложении. После обновления Apple рекомендует использовать новый инструмент для репортеров.
https://github.com/mikebarlow/itc-reporter Я хочу сделать что-то похожее на это, если это возможно. Предположительно, это работает без инструмента репортера, и похоже, что он все еще только делает HTTP-запросы. Я не буду использовать этот код в своем проекте, потому что он требует, чтобы мы обновили версию PHP, которую мы запланировали в другой раз.
Можно ли делать простые HTTP-запросы, используя Curl для получения данных? Я не хочу использовать Guzzle, если мне не нужно!
$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,
это запрос, который я сделал во время тестирования, и когда я его запускаю, я получаю ответ в формате HTML с надписью "Запрещено, у вас нет доступа к этой странице"
Я пробовал это при urlencoding имени пользователя и пароля, но я получаю тот же результат. Я хотел бы иметь возможность получать эти данные с помощью Curl, иначе нам нужно будет добавить инструмент репортера в наше приложение.
1 ответ
Пост -поле просто нужно было соответственно изменить
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,
));