我正在实施一个应该使用Analytics DailyUpload API的服务器端脚本
我为服务器应用添加了一个"密钥"在我的项目https://console.developers.google.com/project。
当我尝试使用php客户端访问API时,我总是遇到401错误。
set_include_path("../src/" . PATH_SEPARATOR . get_include_path());
require_once 'Google/Client.php';
require_once 'Google/Service/Analytics.php';
$client = new Google_Client();
$client->setApplicationName("AutoDailyUpload");
$apiKey = "MY_API_KEY";
$client->setDeveloperKey($apiKey);
$analytics = new Google_Service_Analytics($client);
try {
$accounts = $analytics->management_accounts->listManagementAccounts();
if (count($accounts->getItems()) > 0) {
$items = $accounts->getItems();
$firstAccountId = $items[0]->getId();
$webproperties = $analytics->management_webproperties->listManagementWebproperties($firstAccountId);
if (count($webproperties->getItems()) > 0) {
$items = $webproperties->getItems();
$firstWebpropertyId = $items[0]->getId();
$profiles = $analytics->management_profiles->listManagementProfiles($firstAccountId, $firstWebpropertyId);
if (count($profiles->getItems()) > 0) {
$items = $profiles->getItems();
echo $items[0]->getId();
} else {
throw new Exception('No views (profiles) found for this user.');
}
} else {
throw new Exception('No webproperties found for this user.');
}
} else {
throw new Exception('No accounts found for this user.');
}
} catch (Exception $e) {
echo 'Error : ' . $e->getMessage();
}
结果:
{"error":{"errors":[{"domain":"global","reason":"required","message":"Login Required","locationType":"header","location":"Authorization"}],"code":401,"message":"Login Required"}}
我做错了吗?
答案 0 :(得分:1)
由于这个问题,我找到了一种方法。
Service Applications and Google Analytics API V3: Server-to-server OAuth2 authentication?
希望它能帮助别人