2014-02-05 130 views
2

我試圖找回從谷歌分析我們的內容的實驗數據...谷歌Analytics(分析)API返回401示例代碼

我使用下面的代碼,我creds都不錯,並已審查了這帖子...

<?php 
require_once 'Google/Client.php'; 
require_once 'Google/Service/Analytics.php'; 

session_start(); 

$client = new Google_Client(); 
$client->setApplicationName('Hello Analytics API Sample'); 

// Visit https://cloud.google.com/console to generate your 
// client id, client secret, and to register your redirect uri. 
$client->setDeveloperKey('xxxxx'); 

$service = new Google_Service_Analytics($client); 
try { 
$results = $service->management_experiments->listManagementExperiments('xxxx', 'xxxx', 'xxxx'); 
} catch (apiServiceException $e) { 
    print 'There was an Analytics API service error ' . $e->getCode() . ':' . $e->getMessage(); 

} catch (apiException $e) { 
    print 'There was a general API error ' . $e->getCode() . ':' . $e->getMessage(); 
} 
echo '<pre>'; 
print_r($results); 
echo '</pre>'; 

我用下面的例子....

https://developers.google.com/analytics/devguides/config/mgmt/v3/mgmtExperimentsGuide#list

爲什麼我得到一個401的任何想法未經授權?需要登錄嗎?

+0

您如何獲得授權?您是否嘗試使用繞過登錄的服務帳戶?看起來您的代碼需要通過Google進行登錄。 –

+0

有沒有機會提供一些示例代碼?我一直在這一整天.. = [ –

+0

那麼,你是否嘗試使用繞過登錄或代碼,需要通過谷歌登錄的服務帳戶? –

回答

4

問題是你還沒有授權訪問你的數據呢。既然你說只有你自己的數據你想訪問我sugest你看看service account。通過在Google apis console中設置服務帳戶,它將允許您訪問自己的數據,而無需始終登錄並驗證代碼。

檢查以下鏈接。 雖然在之前開始閱讀,但請確保您完成所有工作。

  1. 註冊在谷歌開發者控制檯
  2. 您的應用程序授權訪問谷歌Analytics的數據。
  3. 創建Analytics服務對象

你skiped前兩個步驟,直接去第3步創建的服務對象。一旦你完成了第1步中,你可以使用下面的代碼爲第2步


下面是如何在PHP ServiceAccount

這樣的項目是針對PredictionService不是使用服務帳戶的例子谷歌分析服務。你需要稍微修改它。

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,你可以使用你的其他呼叫。注意:我沒有時間測試該代碼讓我知道它是否無效,我會幫你解決它。

+1

你是男人! –

+0

我喜歡它的工作? – DaImTo

+0

帶有幾個修改代碼,我會編輯一次,我完全工作,目前遇到另一個錯誤。 –