使用服务帐户访问Google AnalyticsAPI不起作用

时间:2014-09-29 15:34:54

标签: php google-analytics

我尝试使用服务帐户访问我的Google Analytics数据。我已经在开发者控制台中创建了一个,并且我在同一个控制台中启用了Google AnalyticsAPI,但不知怎的,我无法从API中提取数据。

我已在this page上使用了该脚本。

我的代码如下:

<?php

$keyfile = 'google/key.p12';
// Initialise the Google Client object
$client = new Google_Client();
$client->setApplicationName('MyNAME');
$client->setAssertionCredentials(
        new Google_AssertionCredentials(
        'XXXX@developer.gserviceaccount.com', array('https://www.googleapis.com/auth/analytics.readonly'), file_get_contents($keyfile)
        )
);
$client->setClientId('XXXX.apps.googleusercontent.com');
$client->setAccessType('offline_access');
$analytics = new Google_AnalyticsService($client);

$analytics_id = 'ga:UA-XXXXXX-1'; // http://productforums.google.com/forum/#!topic/analytics/dRuAr1K4waI
// get data for the last 2 weeks
$lastWeek = date('Y-m-d', strtotime('-2 week'));
$today = date('Y-m-d');
// Test connection
try {
    $results = $analytics->data_ga->get($analytics_id, $lastWeek, $today, 'ga:visits');
    echo '<b>Number of visits this week:</b> ';
    echo $results['totalsForAllResults']['ga:visits'];
} catch (Exception $e) {
    echo 'There was an error : - ' . $e->getMessage();
}

?>

注意:如果它说&#34; XXXX&#34;,这意味着我出于安全目的删除了部分字符串;正确的字符串在我的实际脚本中。

它应该显示用户数或错误,但我只是得到一个空白屏幕。我确定密钥文件的URL是正确的。

有人有关于如何解决这个问题的建议吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

看起来您正在使用您的属性ID(UA-XXXXX-1)代替您的视图(个人资料)ID。如果您转到Google Analytics Query Explorer,则可以轻松查看您的实际ga:XXXX视图(个人资料)ID。任何给定的属性都可以有多个视图(配置文件)。 This reference guide可以很好地描述此请求所需的参数。