2012-05-25 118 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 –