2016-05-16 2 views
0

Я попытался использовать Google Analytics с google-api-php-client
я использовал версию 1 (старая, но в Analytics Core Reporting API и API Client Library for PHP примеры) и версия 2.Как сделать запрос к Google Analytics API с помощью Google-API-PHP-клиент

"Google/apiclient": "1.0.*@beta": Код:

$service_account_email = 'pd*******@crucial-subset-******.iam.gserviceaccount.com'; 
    $key_file_location = \Yii::getAlias('@common/data/google-analitics/DEMO PROJECT-*******.p12'); 

    // Create and configure a new client object. 
    $client = new \Google_Client(); 
    $client->setApplicationName("HelloAnalytics"); 
    $analytics = new \Google_Service_Analytics($client); 

    // Read the generated client_secrets.p12 key. 
    $key = file_get_contents($key_file_location); 
    $cred = new \Google_Auth_AssertionCredentials(
     $service_account_email, 
     array(\Google_Service_Analytics::ANALYTICS_READONLY), 
     $key 
    ); 
    $client->setAssertionCredentials($cred); 
    if($client->getAuth()->isAccessTokenExpired()) { 
     $client->getAuth()->refreshTokenWithAssertion($cred); 
    } 
    $results = $analytics->data_ga->get(
     'ga:10****', 
     '7daysAgo', 
     'today', 
     'ga:sessions'); 

Ответ:

Exception 'Google_Service_Exception' with message 
'Error calling GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A10****&start-date=7daysAgo 
&end-date=today&metrics=ga%3Asessions: 
(403) User does not have any Google Analytics account.' 

Google/apiclient: ^[email protected]: Код:

$client = new \Google_Client(); 
    putenv('GOOGLE_APPLICATION_CREDENTIALS=' . \Yii::getAlias('@common/data/google-   analitics/DEMO PROJECT-************.json')); 
$client->useApplicationDefaultCredentials(); 

$user_to_impersonate = 'denis********@******.com'; 
$client->setSubject($user_to_impersonate); 
$scopes = [\Google_Service_Analytics::ANALYTICS_READONLY]; 
$client->setScopes($scopes); 

if($client->isAccessTokenExpired();) { 
    $client->refreshTokenWithAssertion(); 
} 

$service = new \Google_Service_Analytics($client); 
$results = $service->data_ga->get(
    'ga:******', 
    '7daysAgo', 
    'today', 
    'ga:sessions'); 

Ответ:

Exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: `POST https://www.googleapis.com/oauth2/v4/token` resulted in a `401 Unauthorized` response: 
{ 
"error": "unauthorized_client", 
"error_description": "Unauthorized client or scope in request." 
} 

ответ