2014-10-10 63 views
0

我想創建一個報告系統,將利用谷歌分析API。但是,由於我的PHP腳本將以cron作業(不是瀏覽器)啓動,因此我無法使用OAuth方法,也不希望每小時(特別是夜間)刷新令牌。我希望我能自動化這個過程。谷歌Analytics API,避免OAuth

我希望你能幫上忙。

這裏是我有什麼作爲代碼,但是,它不工作:我捕捉異常「(401)需要登錄」。

<?php 

include_once "templates/base.php"; 
echo pageHeader("Simple API Access"); 

require_once realpath(dirname(__FILE__) . '/../autoload.php'); 


$client = new Google_Client(); 
$client->setApplicationName("MY_APP_NAME"); 
$apiKey = "MY_OWN_API"; 

if ($apiKey == '<YOUR_API_KEY>') { 
    echo missingApiKeyWarning(); 
} 
$client->setDeveloperKey($apiKey); 
$client->setAccessType('offline'); 

$service = new Google_Service_Analytics($client); 



echo '<pre>'; 

$analytics_id = 'ga:ANALYTICS_ID'; 
$lastWeek = date('Y-m-d', strtotime('-1 week')); 
$today = date('Y-m-d'); 

try { 
    $results = $service->data_ga->get($analytics_id, $lastWeek, $today, 'ga:visits'); 
    echo '<b>Number of visits this week:</b> '; 
    echo $results['totalsForAllResults']['ga:visits']; 
} catch (Exception $e) { 
    echo 'There was an error : - ' . $e->getMessage(); 
} 



echo pageFooter(__FILE__); 

預先感謝您!

回答

1

爲了使用Google API服務,需要OAuth。但是,您可以使用「服務器到服務器的OAuth 2.0」,在此處ISS電子郵件地址是您可以從Google Developer Console獲得的內容。請按照此鏈接中的說明操作:'https://developers.google.com/accounts/docs/OAuth2ServiceAccount'。

我使用同樣的步驟有從後端的OAuth,它正在般的魅力。祝你好運。