мне удалось получить информацию от «точки зрения» с помощью PHP в аналитике Google, однако она работает только тогда, когда я аутентификацию с учетной записью Google, в противном случае он отображает следующее сообщение об ошибке:Доступ к Google Analytics API withouth аутентификации
«Неустранимая ошибка: исключить исключение« Google_Service_Exception »с сообщением« Ошибка при вызове POST https://analyticsreporting.googleapis.com/v4/reports:batchGet: (403) У пользователя нет достаточных разрешений для этого профиля. '"
Что мне нужно в основном - найти способ получения" представления info "без аутентификации, так как у меня есть пользовательские cms, и мне нужно показать эту информацию в разделе admin 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);
}
?>
любая информация по этому вопросу очень ценится. thanks
Итак, вы хотите получить доступ к данным, защищенным паролем, без входа в систему? Вы действительно ожидаете какой-либо помощи здесь?Если вы не хотите показывать данные в cms, вам нужно войти в систему (или тот, кто владеет учетной записью). Для Google Analytics существует javascript API: https://developers.google.com/analytics/devguides/reporting/embed/v1/ Возможно, это поможет. – Seb
@Seb жаль, что я не объяснил себя правильно. Мне нужно получить информацию без необходимости входа в учетную запись google, если ее можно отправить учетные данные через php или что-то в этом роде. –
@SolarConfinement Пожалуйста, прочитайте документацию Google OAuth 2.0 для этого же. https://developers.google.com/identity/protocols/OAuth2 – dikesh