Google AnalyticsAPI - 使用“同意屏幕”获取访问令牌而无需进行身份验证

时间:2014-02-11 17:05:57

标签: php google-analytics google-analytics-api access-token

我正在开发一个使用Google AnalyticsAPI的网站。我按照本教程 - > https://developers.google.com/analytics/solutions/articles/hello-analytics-api?hl=pt-PT

一切正常。我得到了“同意屏幕”,我给了“权限”,我被重定向到我的网站,包含所有信息。

但是,我想稍微改变一下。我想获取Google Analytics的所有信息,而不使用“同意屏幕”,即仅使用Google Analytics代码(UA-XXXXXXXX-X)或任何其他方式。

任何帮助?

由于

1 个答案:

答案 0 :(得分:4)

要使用Google Analytics API,您需要授权(访问数据的权限)。因为你只想看到你自己的数据我建议你看一下service account。通过在Google apis控制台中设置服务帐户,您可以访问自己的数据,而无需一直登录和验证代码。


以下是如何在php ServiceAccount

中使用服务帐户的示例

该示例项目适用于PredictionService而非Google Analytics分析服务。您需要稍微编辑它。

require_once '../../src/Google/Client.php'; 
require_once '../../src/Google/Service/Analytics.php'; 

// Set your client id, service account name, and the path to your private key. 
// For more information about obtaining these keys, visit: 
// https://developers.google.com/console/help/#service_accounts

const CLIENT_ID = 'INSERT_YOUR_CLIENT_ID'; 
const SERVICE_ACCOUNT_NAME = 'INSERT_YOUR_SERVICE_ACCOUNT_NAME'; 


// Make sure you keep your key.p12 file in a secure location, and isn't 
// readable by others.

const KEY_FILE = '/super/secret/path/to/key.p12'; 


$client = new Google_Client(); 
$client->setApplicationName("Google Analytics Sample"); 


// Load the key in PKCS 12 format (you need to download this from the 
// Google API Console when the service account was created. 


$client->setAssertionCredentials(new Google_AssertionCredentials( 
    SERVICE_ACCOUNT_NAME(Email), 
    array('https://www.googleapis.com/auth/analytics.readonly'), 
    file_get_contents(KEY_FILE)) 
); 


$client->setClientId(CLIENT_ID); 
$service = new Google_Service_Analytics($client);

现在您有$service可以与其余的通话一起使用。