доступ к API Google Analytics без аутентификации

Мне удалось получить информацию из «просмотра» с использованием php в Google Analytics, однако он работает только в том случае, если я проверяю подлинность с помощью учетной записи Google, в противном случае отображается следующая ошибка:

«Неустранимая ошибка: необработанное исключение« Google_Service_Exception »с сообщением« Ошибка вызова POST https://analyticsreporting.googleapis.com/v4/reports:batchGet: (403) У пользователя недостаточно прав для этого профиля. ‘»

в основном мне нужно найти способ получения «информации о просмотре» без аутентификации, поскольку у меня есть собственный cms, и мне нужно показать эту информацию в разделе администрирования cms

Вот мой код:

<?php
session_start();
require_once 'google-api-php-client/src/Google/autoload.php';

$client = new Google_Client();
$client->setAuthConfigFile('pathToFile.json');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);

// If the user has already authorized this app then get an access token
// else redirect to ask the user to authorize access to Google Analytics.
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
// Set the access token on the client.
$client->setAccessToken($_SESSION['access_token']);

// Create an authorized analytics service object.
$analytics = new Google_Service_AnalyticsReporting($client);

// Call the Analytics Reporting API V4.
$response = getReport($analytics);

// Print the response.
$info = printResults($response);

} else {
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/api/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}function getReport(&$analytics) {

// Replace with your view ID. E.g., XXXX.
$VIEW_ID = "VIEW_ID_NUMBER";

// Create the DateRange object.
$dateRange = new Google_Service_AnalyticsReporting_DateRange();
$dateRange->setStartDate("2016-01-01");
$dateRange->setEndDate("today");

// Create the Metrics object.
$sessions = new Google_Service_AnalyticsReporting_Metric();
$sessions->setExpression("ga:goalCompletionsAll");
$sessions->setAlias("objetivos");

//Create the Dimensions object.
$medium = new Google_Service_Analyticsreporting_Dimension();
$medium->setName("ga:medium");

$minute = new Google_Service_Analyticsreporting_Dimension();
$minute->setName("ga:minute");

$hour = new Google_Service_Analyticsreporting_Dimension();
$hour->setName("ga:hour");

$date = new Google_Service_Analyticsreporting_Dimension();
$date->setName("ga:date");

$day = new Google_Service_Analyticsreporting_Dimension();
$day->setName("ga:day");

$goals = new Google_Service_Analyticsreporting_Metric();
$goals->setExpression("ga:goalStartsAll");

// Create the ReportRequest object.
$request = new Google_Service_AnalyticsReporting_ReportRequest();
$request->setViewId($VIEW_ID);
$request->setDateRanges($dateRange);
$request->setDimensions(array($medium, $date, $hour, $minute));
$request->setMetrics(array($sessions, $goals));

$body = new Google_Service_AnalyticsReporting_GetReportsRequest();
$body->setReportRequests( array( $request) );
return $analytics->reports->batchGet( $body );
}?>

любая информация по этому вопросу с благодарностью.
Спасибо

1

Решение

Чтобы получить любую информацию о ГА, вам необходимо подтвердить свою подлинность.
Если вы не хотите использовать путь аутентификации во всплывающих окнах, вы можете использовать «ключ p12», чтобы обойти эту проблему. Файлы p12 должны быть прикреплены к вашему запросу, и нет необходимости регистрироваться (это решение для приложения на стороне сервера), но это работает только с вашими собственными данными, поэтому владелец ключа p12 должен иметь доступ к желаемый аккаунт

https://developers.google.com/analytics/devguides/reporting/core/v4/authorization

Проверьте это, чтобы узнать, как получить p12
https://webapps.stackexchange.com/questions/58411/how-where-to-obtain-a-p12-key-file-from-the-google-developers-console

1

Другие решения

Вы можете использовать учетная запись службы чтобы получить доступ к данным Google Analytics без экрана аутентификации Google.

Создать сервисный аккаунт и ключ

В консоли API Google (https://console.developers.google.com/), перейдите к полномочия Вкладка. Под Создать учетные данные, Выбрать Ключ учетной записи службы. Выберите красивое имя и под Роль Я выбрал Проект -> Просмотр, который я могу подтвердить, чтобы работать. Под Тип ключа, Выбрать JSON и нажмите Создайте кнопка. Файл JSON загружен в вашу систему, которая ты должен заботиться так как это единственная копия. Вы не сможете загрузить его снова позже, поэтому потеря его сделает эту учетную запись службы бесполезной.

Предоставьте учетной записи доступ к данным представления Google Analytics.

Файл JSON содержит учетную запись Google (адрес электронной почты, заканчивающийся на iam.gserviceaccount.com). Скопируйте этот адрес электронной почты и дайте ему Читать и анализировать разрешения на Google Analytics Посмотреть Вы хотите иметь доступ к.

1

По вопросам рекламы [email protected]