gordon_shamway
@gordon_shamway

Как нормализовать ответ от Api Direct?

Вот пример запроса
$name='Reportorg';
echo $name;
$data ='<?xml version="1.0" encoding="UTF-8"?>
    <ReportDefinition xmlns="http://api.direct.yandex.com/v5/reports">
    	<SelectionCriteria>
    		<Filter>
    			<Field>CampaignId</Field>
    			<Operator>EQUALS</Operator>
    			<Values>'.$_GET['id_company'].'</Values>
    		</Filter>
    	</SelectionCriteria>
    	<FieldNames>Date</FieldNames>
    	<FieldNames>CampaignName</FieldNames>
    	<FieldNames>AdGroupName</FieldNames>
    	<FieldNames>Ctr</FieldNames>
    	<FieldNames>ConversionRate</FieldNames>
    	<FieldNames>CostPerConversion</FieldNames>
    	<FieldNames>Impressions</FieldNames>
    	<FieldNames>GoalsRoi</FieldNames>
    	<FieldNames>Clicks</FieldNames>
    	<FieldNames>Cost</FieldNames>
    	<FieldNames>AdNetworkType</FieldNames>
    	<OrderBy>
    		<Field>Date</Field>
    	</OrderBy>
    	<ReportName>'.$name.'</ReportName>
    	<ReportType>CUSTOM_REPORT</ReportType>
    	<DateRangeType>THIS_MONTH</DateRangeType>
    	<Format>TSV</Format>
    	<IncludeVAT>NO</IncludeVAT>
    	<IncludeDiscount>NO</IncludeDiscount>
    </ReportDefinition>';
    echo "<p></p>";

  $tokenYandex = $_SESSION['token'];
  $curl = curl_init();
  curl_setopt_array($curl, array(
    CURLOPT_URL => "https://api.direct.yandex.com/v5/reports/",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    //CURLOPT_ENCODING => "",
    //CURLOPT_MAXREDIRS => 10,
    
    //CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "POST",
    CURLOPT_HTTPHEADER => array(
       "Content-type: text/xml",
      "accept-language: ru",
      "authorization: Bearer ".$tokenYandex,
      "processingMode: offline",
      "Client-Login: ".$_SESSION['login'],
      "returnMoneyInMicros: false"
      ),
    )
  );
  curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
  curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

  $res = curl_exec($curl);
  //$res = json_decode($res);
  
  print_r($res);
}

Как можно конвертировать ответ в ассоциативный массив/json?
  • Вопрос задан
  • 446 просмотров
Решения вопроса 1
DevMan
@DevMan
что мешает пользовать апи сразу в json?
https://tech.yandex.com/direct/doc/dg-v4/concepts/...

ну и кагбе пых прекрасно умеет парсить xml.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
23 апр. 2024, в 19:05
15000 руб./за проект
23 апр. 2024, в 19:01
7000 руб./за проект
23 апр. 2024, в 18:47
10000 руб./за проект