来自localhost的Google AnalyticsAPI

时间:2015-03-06 00:28:38

标签: php google-analytics google-api google-analytics-api google-api-php-client

使用php脚本通过Google PHP客户端API从Google Analytics中提取数据。我已经在localhost / ga /.

设置了脚本

设置了所有API密钥,启用了Analytics API。

用于Web应用程序的客户端ID":

REDIRECT URIS  http://localhost/ga/
JAVASCRIPT ORIGINS http://localhost

在"浏览器应用程序的密钥":

REFERERS  http://localhost/*

仔细检查所有密钥,ID和密码。但是我收到了这个错误:

"(403) There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed."

我目前的代码:

$client = new Google_Client();
$client->setApplicationName('GA Test');
$client->setClientId($cred['id']);
$client->setClientSecret($cred['secret']);
$client->setRedirectUri($cred['redirect']);
$client->setDeveloperKey($cred['api_key']);
$client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));

if (isset($_GET['code'])) {
    $client->authenticate($_GET['code']);
    $_SESSION['token'] = $client->getAccessToken();
    $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
    header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}

if (isset($_SESSION['token'])) {
    $client->setAccessToken($_SESSION['token']);
}

if($client->isAccessTokenExpired()) {
    $authUrl = $client->createAuthUrl();
    header('Location: ' . filter_var($authUrl, FILTER_SANITIZE_URL));
}

if (!$client->getAccessToken()) {
    $authUrl = $client->createAuthUrl();
    echo '<a class="login" href="'.$authUrl.'">Connect Me!</a>';
} else {
    $analytics = new Google_Service_Analytics($client);
    try {
        $optParams = array(
            'dimensions' => 'ga:source,ga:keyword',
            'sort' => '-ga:sessions,ga:source',
            'filters' => 'ga:medium==organic',
            'max-results' => '25'
        );
        $dump =  $analytics->data_ga->get(
            'ga:52371304',
            '2015-01-01',
            '2015-03-01',
            'ga:sessions',
            $optParams
        );
        var_dump($dump);
        echo 'hi!';
    } catch(Exception $e) {
        echo $e->getMessage();
    }
}

知道我可能做错了吗?

1 个答案:

答案 0 :(得分:0)

我想出来了。呸。

我生成的公钥是浏览器密钥而不是服务器密钥。您可以将IP字段留空,它将与localhost一起使用。