Я пытаюсь получить данные с помощью API Google Analytics через учетные записи служб.
Я искал в stackoverflow, как это сделать, и использовал тот же самый код, который был найден на нескольких сообщениях, но получал проблемы, чтобы заставить его работать.
Источники:
Службы приложений и API Google Analytics V3: Аутентификация OAuth2 от сервера к серверу?
Службы приложений и API Google Analytics V3: ошибка 101 (сеть :: ERR_CONNECTION_RESET)
http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/prediction/serviceAccount.php
Это то, что я получил:
require_once('googleAPIGoogle_Client.php'); require_once('googleAPI/contrib/Google_AnalyticsService.php'); const CLIENT_ID = 'xxxxxxxx001.apps.googleusercontent.com'; const SERVICE_ACCOUNT_NAME = 'xxxxxx001@developer.gserviceaccount.com'; $keyfile = $_SERVER['DOCUMENT_ROOT']."/xxxxxxx284-privatekey.p12"; $client = new Google_Client(); $client->setAccessType('offline'); $client->setApplicationName("cc insights"); $key = file_get_contents($keyfile); $client->setClientId(CLIENT_ID); $client->setAssertionCredentials(new Google_AssertionCredentials( SERVICE_ACCOUNT_NAME, array('https://www.googleapis.com/auth/analytics.readonly'), $key) ); $service = new Google_AnalyticsService($client); $data = $service->data_ga->get("ga:xxxx7777", "2012-01-01", "2013-01-25", "ga:pageviews"); var_dump($data);
при выполнении я получил следующую ошибку:
Неустранимая ошибка: исключить исключение «Google_ServiceException» с сообщением «Ошибка вызова GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end-date=2013- 01-25 & metrics = ga% 3Apageviews : (403) У пользователя нет достаточных разрешений для этого профиля. ' в /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66 Трассировка стека: # 0 / Приложения / XAMPP / xamppfiles / htdocs / insights / application / libraries / googleAPI / io / Google_REST .php (36): Google_REST :: decodeHttpResponse (объект (Google_HttpRequest)) # 1 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/service/Google_ServiceResource.php(178): Google_REST :: выполнить (объект (Google_HttpRequest)) # 2 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383): Google_ServiceResource -> __ call ('get', Array) # 3 / Applications / XAMPP / xamppfiles / htdocs / insights / application / libraries / Google.php (46): Google_DataGaServiceResource-> get ('g в /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php в строке 66
Поскольку я использую тот же код, что и рабочие примеры, я думаю, что это может быть проблема с настройками учетной записи API или службы?
Это пользователь, которого я добавил в аккаунт аналитики:
и это учетные записи доступа api:
Кто-нибудь знает, что я делаю неправильно?
Я получал точно такую же ошибку, и это решило это для меня:
Я использовал идентификатор учетной записи вместо ID просмотра. Переключившись на View ID, он зафиксировал его – это всегда «View ID», а не идентификатор учетной записи или свойства (который выглядит как «UA-xxx»). Идентификатор View предназначен для определенного веб-ресурса и может быть найден в Admin-> View (3-й столбец) -> Настройки просмотра. Это целое число без дефиса.
Если бы такая же проблема сегодня, то ее трудно найти, вы можете получить ее в каждом URL-адресе в аналитике, например https://www.google.com/analytics/web/#management/Settings/aXXXXXXWYYYYYYYPZZZZZZZ/, это часть ZZZZZZZ
Тот же вопрос. Решил его, используя идентификатор VIEW, а не идентификатор учетной записи (UA-XXXXX-1).
Analytics Console > Admin -> View (Profile) -> View Settings -> View ID
А ТАКЖЕ
Убедитесь, что вы добавили учетную запись службы в список пользователей в консоли Google Analytics. Просто настроить его в разделе Credentials, API и Permissions консоли разработчика все равно не даст ему доступ к вашей аналитике.
Analytics Console > Admin -> Account -> User Management -> "Add permissions for:"
Получил ту же ошибку, но через некоторое время я узнал, что я использую этот скрипт с моим Google Chrome (мой собственный адрес электронной почты), но API Google Analytics работает в электронной почте компаний. Таким образом, решение может заключаться в редактировании настроек вашего Chrome. Просто отключитесь от учетной записи gmail в Chrome (настройки) Google и проверьте ее снова.
Использовать идентификатор просмотра ID не идентификатор учетной записи, вкладку «Администратор», «Просмотреть настройки» «Идентификатор просмотра».
Помог мне много после 2 недель попытки найти решение:
Консоль Analytics -> Admin -> Просмотр (Профиль) -> Настройки просмотра -> Просмотр ID
В другом приложении я получал «Недостаточные разрешения» и обнаружил, что в моем файле .htaccess есть некоторые ограничения файлов, которые вызвали эту проблему.
У меня была та же проблема с использованием библиотеки .net, после некоторого вмешательства, я нашел решение:
Перейдите на сайт управления Google Analytics и добавьте учетную запись службы в качестве пользователя и предоставите эту учетную запись необходимым правам.
Возможно, вы используете другой идентификатор клиента: секрет клиента: чтобы получить другие данные профиля профиля
Если проблема … оказалось, что идентификатор учетной записи скрыт в URL-адресе вашей аналитической учетной записи!
https://developers.google.com/analytics/devguides/reporting/core/v3/#user_reports
URL-адрес обычно выглядит так:
https://www.google.com/analytics/web/?hl=ru#management/Settings/a51343283w84330433 p87396224 /%3Fm.page%3DAccountSettings/
Идентификатор, который мы ищем, следует букве p.
В приведенном выше примере идентификатор, который будет работать: 87396224
Создайте общий сегмент … Он будет работать
http://www.periscopix.co.uk/blog/google-analytics-new-feature-shared-segments/