2012-05-25 37 views
2

我正在嘗試撥打電話以從Google Analytics獲取數據。谷歌Analytics(分析)Api錯誤

<?php 

require_once 'lib/apiClient.php'; 
require_once 'lib/contrib/apiAnalyticsService.php'; 
session_start(); 

$client = new apiClient(); 

$service = new apiAnalyticsService($client); 

if (isset($_GET['logout'])) { 
    unset($_SESSION['token']); 
} 

if (isset($_GET['code'])) { 
    $client->authenticate(); 
    $_SESSION['token'] = $client->getAccessToken(); 
    $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; 
    header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); 
} 

if (isset($_SESSION['token'])) { 
    $client->setAccessToken($_SESSION['token']); 
} 

if ($client->getAccessToken()) { 
    $accounts = $service->management_accounts->listManagementAccounts(); 
    print "<h1>Accounts</h1><pre>" . print_r($accounts, true) . "</pre>"; 

    try { 
     $data = $service->data_ga->get('ga:29214712', '2012-01-01', '2012-01-15', 
      'ga:visits', array('dimensions' => 'ga:source,ga:keyword', 'sort' => 
      '-ga:visits,ga:source', 'filters' => 'ga:medium==organic', 'max-results' => '25')); 
    } 
    catch (apiServiceException $e) { 
     echo $e->getCode(); 
     print_r($data); 
    } 

    $_SESSION['token'] = $client->getAccessToken(); 
} else { 
    $authUrl = $client->createAuthUrl(); 
    print "<a class='login' href='$authUrl'>Connect Me!</a>"; 
} 

在try catch塊中包裝代碼後我收到以下錯誤

錯誤調用get https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3A29214712&start-date=2012-01-01&end-date=2012-01-15&metrics=ga%3Avisits:(!)(403)禁止

公告:未定義變量: 中的數據43行上的C:\ wamp \ www \ gitgrow \ index.php

注意:我已經授予了權限並強制配置文件ID進行測試。

回答

2

您遇到的403錯誤意味着授權用戶無權訪問在您的查詢中定義的ga:29214712報告配置文件。

看一看的例子/分析/ demo目錄的HelloAnalyticsAPI.php樣品,並確保您可以連接到API: http://code.google.com/p/google-api-php-client/source/browse/#svn%2Ftrunk%2Fexamples%2Fanalytics%2Fdemo

此外,看一看在谷歌Analytics(分析)開發人員指南。它將介紹如何獲取正確的配置文件ID: https://developers.google.com/analytics/devguides/reporting/core/v3/#user_reports

+0

謝謝。我強制的帳戶ID而不是配置文件ID –