Клуб Яндекс.Метрики

Авторизация по токену в новой метрике.

Пост в архиве.

Передача авторизационного токена в параметрах URL перестанет работать 13 февраля 2019 года. Чтобы продолжить работу с API Метрики, надо  настроить авторизацию по токену в HTTP-заголовке.

типа так

GET /management/v1/counters HTTP/1.1
Host: api-metrika.yandex.net
Authorization: OAuth 05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037
Content-Type: application/x-yametrika+json
Content-Length: 123

Где взять пример скрипта на php, как правильно это сделать. 

8 комментариев
Алексей Гапеев
6 февраля 2019, 18:59
Та же задача ...
Василий
Сотрудник Яндекса12 февраля 2019, 17:15
Пожалуйста, напишите в поддержку API Метрики: https://tech.yandex.ru/metrika/doc/api2/troubleshooting-docpage/ 
function curl_file_get_contents($url)
{
$authToken = '**************************';
$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 = array(
'ids' => '*******',
'metrics' => 'ym:s:visits',
'dimensions' => 'ym:s:externalRefererPathLevel1',
'date1' => '7daysAgo',
'date2' => 'yesterday'
);
$obj = curl_file_get_contents($url . '?' . http_build_query($params));
$obj = json_decode($obj, true);
for ($i = 0;$i < count($obj['data']);$i++)
{
echo '[', "'", $obj['data'][$i]['dimensions'][0]['name'], "'", ', ', $obj['data'][$i]['metrics']['0'], '],';
}
?>
shura.kuimov,
Не работает
rieltavto2011,

Вот более понятнее все описал:
https://cms3.ru/oauth-token-v-http-zagolovke/
shura.kuimov,
Спасибо, скрипт работает!
Может кто выложит под php 5.3
Иван,
Я и выложу

<?php
function curl_file_get_contents($url)
{
$authToken = '***************';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('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 = array(
'ids' => '******',
'metrics' => 'ym:s:visits',
'dimensions' => 'ym:s:externalRefererPathLevel1',
'date1' => '7daysAgo',
'date2' => 'yesterday'
);
$obj = curl_file_get_contents($url . '?' . http_build_query($params));
$obj = json_decode($obj, true);
for ($i = 0;$i < count($obj['data']);$i++)
{
echo '[', "'", $obj['data'][$i]['dimensions'][0]['name'], "'", ', ', $obj['data'][$i]['metrics']['0'], '],';
}
?>