Если проблема в том, что получаете ошибку 403, когда к счетчику нет публичного доступа, обратите внимание на вот эту строчку в настройках, указанных на яндекс.метрике
Authorization: OAuth 05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037
соответственно у Вас header = {} должен иметь вид
header = {‘Authorization’: ‘OAuth AQAAAAAAlc93AAWFfpGrC1vQA0KggaP3zz91QDw’}
Вот ответ от Вашего счетчика после исправления header
total Count_1 [‘672.0’, ‘ 485.0’]
Здравствуйте. Пытаюсь вывести на сайте через json данные с метрики.
Создал приложение, создал oauth_token, но когда пробую получить данные, вылазит 403 ошибка (нет доступа).
К примеру, использую запрос:
https://api-metrika.yandex.ru/stat/v1/data?metrics=ym:s:visits,ym:s:pageviews&dimensions=ym:s:referer,ym:s:startURLDomain&date1=2015-01-01&date2=yesterday&limit=10000&offset=1&ids=<мойidсчетчики>&oauth_token=<мойoauth_token>
И получаю:
{«errors»:[{«error_type»:»access_denied»,»message»:»Access is denied»}],»code»:403,»message»:»Access is denied»}
Если сделать счетчик Метрики публичным и открыть всем доступ, тогда все работает, и данные отдаются корректно.
Можно ли не делая счетчик публичным, добиться, чтобы данные отдавались?
-
Создал приложение:
-
дал ему доступы:
-
получил токен здесь https://tech.yandex.ru/oauth/doc/dg/tasks/get-oauth-token-docpage/.
4.Хочу получить отчет:
$url = 'https://api-metrika.yandex.ru/stat/v1/data';
$oauth_token = 'AQAAAAAERkkuAAWm1kmj8FEypEKkriccnX3eOJE';
$headers = [
'Host' => 'api-metrika.yandex.net',
'Authorization' => 'OAuth ' . $oauth_token,
'Content-Type' => 'application/x-yametrika+json',
'Content-Length' => '123'
];
$params = [
'ids' => '38087760',
'metrics' => 'ym:s:visits,ym:s:pageviews,ym:s:users',
'dimensions' => 'ym:s:date',
'date1' => '7daysAgo',
'date2' => 'yesterday',
'sort' => 'ym:s:date',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_POST, false);
$page = curl_exec ($ch);
if ($page === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close($ch);
echo '<pre>';
var_dump($page);
echo '</pre>';
5.А получаю Access denied.
{"errors":[{"error_type":"access_denied","message":"Access is denied"}],"code":403,"message":"Access is denied"}"
Не могу понять почему нет доступа.
Сервис Яндекс.Метрика и UTMSTAT интегрируются, буквально, в два счёта: для этого достаточно перейти в раздел “Настройки интеграций“, затем указать в соответствующем поле формы номер счётчика Яндекс.Метрики и домен, где он установлен.
Однако, что делать, если подключить сервис с первого раза не удаётся? В этой статье приводится пошаговая инструкция по подключению Яндекс.Метрики. Кроме того, разбираются типичные ошибки в настройке и даются ответы на самые распространенные вопросы.
Где взять номер счётчика Яндекс.Метрики?
Перейдите в панель управления сервиса Яндекс.Метрика, раздел “Мои счетчики”. Нужный вам номер счетчика – это набор цифр, расположенный рядом с доменом сайта.
При подключении Яндекс.Метрики выдаётся ошибка – 403 (нет доступа). Что делать?
Подключаемый аккаунт Яндекс.Метрики должен иметь право на редактирование настроек (а не только на просмотр). Это необходимо для того, чтобы учетная запись в автоматическом режиме имела возможность создать цели (конверсии).
Если при подключении Яндекс.Метрики на странице “Интеграции с сервисами” индикатор “Доступ проверен” (1) горит красным, нажмите ссылку “посмотреть”, чтобы увидеть, какая именно выдается ошибка.
В случае, если код ошибки – 403, это означает, что в подключаемом аккаунте нет прав на и редактирование счетчика.
В этом случае, надо добавить доступ на редактирование для подключаемого аккаунта Яндекс.Метрики или войти в другой аккаунт, в котором эти права есть (перелогиниться в другую учетную запись в отдельном окне браузера).
Как проверить доступ на редактирование для аккаунта Яндекс.Метрики?
Авторизуйтесь в сервисе Яндекс.Метрика. В списке счетчиков щелкните по нужному счетчику и перейдите в раздел настроек.
Перейдите в раздел “Доступы” (1). Учетная запись должна иметь права на редактирование (2).
Как убедиться, что учетная запись в сервисе Яндекс.Метрика имеет права на создание целей?
Перейдите в раздел “Цели” (1). Кнопка “Добавить цель” (2) должна быть активна (не серая).
Цели и конверсии настроены, но не отображаются в отчетах. Что делать?
Как правило, отражение достигнутых целей в отчетах происходит с некоторой задержкой. Если вы уверены, что все цели настроены корректно – подождите некоторое время. Цели будут выведены в отчете (как правило – не более суток).
Вам также понравится
-
Создал приложение:
-
дал ему доступы:
-
получил токен здесь https://tech.yandex.ru/oauth/doc/dg/tasks/get-oauth-token-docpage/.
4.Хочу получить отчет:
$url = 'https://api-metrika.yandex.ru/stat/v1/data';
$oauth_token = 'AQAAAAAERkkuAAWm1kmj8FEypEKkriccnX3eOJE';
$headers = [
'Host' => 'api-metrika.yandex.net',
'Authorization' => 'OAuth ' . $oauth_token,
'Content-Type' => 'application/x-yametrika+json',
'Content-Length' => '123'
];
$params = [
'ids' => '38087760',
'metrics' => 'ym:s:visits,ym:s:pageviews,ym:s:users',
'dimensions' => 'ym:s:date',
'date1' => '7daysAgo',
'date2' => 'yesterday',
'sort' => 'ym:s:date',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
curl_setopt($ch, CURLOPT_POST, false);
$page = curl_exec ($ch);
if ($page === FALSE) {
echo "cURL Error: " . curl_error($ch);
}
curl_close($ch);
echo '<pre>';
var_dump($page);
echo '</pre>';
5.А получаю Access denied.
{"errors":[{"error_type":"access_denied","message":"Access is denied"}],"code":403,"message":"Access is denied"}"
Не могу понять почему нет доступа.