Не получается сделать запрос в яндекс метрику и получить данные счетчика
Вот мой код
$url = 'https://api-metrika.yandex.net/management/v1/counter/61163671';
$params = [
'ids' => '61163671',
'oauth_token' => 'AgAAAAAMBw2HAAY7yMoboZO8CUWpmVChQmmpE1w',
'metrics' => 'ym:s:visits,ym:s:pageviews,ym:s:users',
'dimensions' => 'ym:s:date',
'date1' => '7daysAgo',
'sort' => 'ym:s:date',
];
echo file_get_contents( $url . '?' . http_build_query($params) );
Ничего соответственно не выводит. Сайт тестовый. Весь интернет облазил уже. Апи яндекса перечитал вдоль поперек. Помогите решить задачу.
Ответы (1 шт):
Автор решения: Aziz
→ Ссылка
Нашел вариант. Токен оказывается надо передавать в заголовках header, в общем код выглядит так, где надо вставляйте токен и id счетчика.
function curl_file_get_contents($url){
$authToken = 'XXXXXXXXXXXXXXXXXX';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-yametrika+json', 'Authorization: OAuth' . $authToken]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$obj = curl_exec($ch);
curl_close($ch);
return $obj;
}
$url = 'https://api-metrika.yandex.ru/stat/v1/data';
$params = [
'ids' => '00000000',
'metrics' => 'ym:s:visits,ym:s:pageviews,ym:s:users',
'dimensions' => 'ym:s:date',
'date1' => '30daysAgo',
'date2' => 'yesterday',
'sort' => 'ym:s:date',
];
$json = curl_file_get_contents($url . '?' . http_build_query($params));
$data = json_decode($json, true)['data'];
?>