谷歌分析API php APIKey 401

时间:2014-07-08 09:10:28

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

我正在实施一个应该使用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"}}
我做错了吗?

1 个答案:

答案 0 :(得分:1)

由于这个问题,我找到了一种方法。

Service Applications and Google Analytics API V3: Server-to-server OAuth2 authentication?

希望它能帮助别人