Google 来自本地主机的分析 API
Google Analytics API from localhost
正在编写 php 脚本以使用 Google PHP 客户端 API 从 Google Analytics 提取数据。我已经在 localhost/ga/.
设置了脚本
已设置好我的 API 密钥,已打开 Analytics API。
在"Client ID for Web application"中:
REDIRECT URIS http://localhost/ga/
JAVASCRIPT ORIGINS http://localhost
在"Key for browser application"中:
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();
}
}
知道我做错了什么吗?
我想通了。呸
我生成的 Public 密钥是浏览器密钥而不是服务器密钥。您可以将 IP 字段留空,它将与本地主机一起使用。
正在编写 php 脚本以使用 Google PHP 客户端 API 从 Google Analytics 提取数据。我已经在 localhost/ga/.
设置了脚本已设置好我的 API 密钥,已打开 Analytics API。
在"Client ID for Web application"中:
REDIRECT URIS http://localhost/ga/
JAVASCRIPT ORIGINS http://localhost
在"Key for browser application"中:
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();
}
}
知道我做错了什么吗?
我想通了。呸
我生成的 Public 密钥是浏览器密钥而不是服务器密钥。您可以将 IP 字段留空,它将与本地主机一起使用。