Google Analytics отображает данные только для 1 пользователя

Я пытаюсь создать страницу, на которой будут отображаться данные об учетной записи пользователя GA. В настоящее время отображаются данные только 1 пользователя независимо от того, кто вошел в систему. Я не понимаю, почему это так, потому что я использую идентификатор клиента для аутентификации вместе с oauth2.0. Я вызываю getFirstprofileId, однако независимо от того, кто вошел в Google, результат всегда возвращает один и тот же идентификатор

// Load the Google API PHP Client Library.
require_once realpath(dirname(__FILE__).'/google-api-php-client/src/Google/autoload.php');

// Start a session to persist credentials.
$client_id = 'XXXXXXXXX';

$client_secret = 'XXXXXXX';

$redirect_uri = '';

// Create the client object and set the authorization configuration
// from the client_secretes.json you downloaded from the developer console.

$client = new Google_Client();





$analytics = new Google_Service_Analytics($client);


If we're logging out we just need to clear our

local access token in this case


if (isset($_REQUEST['logout'])) {




If we have a code back from the OAuth 2.0 flow,

we need to exchange that with the authenticate()

function. We store the resultant access token

bundle in the session, and redirect to ourself.


if (isset($_GET['code'])) {


$_SESSION['access_token'] = $client->getAccessToken();

$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];

header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));



If we have an access token, we can make

requests, else we generate an authentication URL.


if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {


} else {

$authUrl = $client->createAuthUrl();}function getFirstprofileId(&$analytics) {
// Get the user's first view (profile) ID.

// Get the list of accounts for the authorized user.
$accounts = $analytics->management_accounts->listManagementAccounts();

if (count($accounts->getItems()) > 0) {
$items = $accounts->getItems();
$firstAccountId = $items[0]->getId();

// Get the list of properties for the authorized user.
$properties = $analytics->management_webproperties

if (count($properties->getItems()) > 0) {
$items = $properties->getItems();
$firstPropertyId = $items[0]->getId();

// Get the list of views (profiles) for the authorized user.
$profiles = $analytics->management_profiles
->listManagementProfiles($firstAccountId, $firstPropertyId);

if (count($profiles->getItems()) > 0) {
$items = $profiles->getItems();

// Return the first view (profile) ID.
return $items[0]->getId();

} else {
throw new Exception('No views (profiles) found for this user.');
} else {
throw new Exception('No properties found for this user.');
} else {
throw new Exception('No accounts found for this user.');

function getResults(&$analytics, $profileId) {
// Calls the Core Reporting API and queries for the number of sessions
// for the last seven days.
return $analytics->data_ga->get(
'ga:' . $profileId,

function printResults(&$results) {
// Parses the response from the Core Reporting API and prints
// the profile name and total sessions.
if (count($results->getRows()) > 0) {

// Get the profile name.
$profileName = $results->getProfileInfo()->getProfileName();

// Get the entry for the first entry in the first row.
$rows = $results->getRows();
$sessions = $rows[0][0];

// Print the results.
print "<p>First view (profile) found: $profileName</p>";
print "<p>Total sessions: $sessions</p>";
} else {
print "<p>No results found.</p>";
$profile = getFirstProfileId($analytics);
$results = getResults($analytics, $profile);



Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы