GAPI无法验证用户身份

时间:2014-07-06 20:02:58

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

 <?php 
   require('gapi.class.php');
   $ga = new gapi(_GAE_,_GAP_);
   $dimensions = array('source');
   $metrics = array('visits');
   $ga->requestReportData(_GAA_, $dimensions, $metrics,'-visits');
   $gaResults = $ga->getResults();
   $i=1;

   foreach($gaResults as $result)
    {
     printf("%-4d %-40s %5d\n",
       $i++,
       $result->getSource(),
       $result->getVisits());
    }
   echo "\n-----------------------------------------\n";
   echo "Total Results : {$ga->getTotalResults()}";    
 ?>

此代码来自GAPI教程,我在登录失败时不断收到这些错误,但我的所有信息都是正确的。

Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: "GDatainsufficientPermissionsUser does not have sufficient permissions for this profile."' in public_html/admin/gapi.class.php:218 Stack trace: #0 


public_html/php/templates/pages/ga_advanced.php(11): gapi->requestReportData('52537078', Array, Array, '-visits') #1 

public_html/php/php_includes/easyCMSv2.php(43): include('/home/a3822536/...') #2

public_html/php/templates/pages/general_google_analytics.php(6): CMS->template('../php/template...') #3 

public_html/admin/gapi.class.php on line 218 

有没有人有这方面的经验可以解释什么是错的?我使用的帐户ID与UA-(n)以及它一起使用。 EX:UA-1238124hf-y但没有任何效果。

3 个答案:

答案 0 :(得分:2)

您在请求中使用的是ACCOUNT id而不是PROFILE id

当你登录GA时可以找到个人资料ID点击链接查看特定个人资料(网站)的统计数据,在URL中你会看到如下内容:

https://www.google.com/analytics/web/?#report/visitors-overview/axxxxxwxxxxxxxpXXXXXX/

&#34; p&#34;之后的数字在URL的末尾是个人资料ID

答案 1 :(得分:0)

所以在做了一些挖掘之后我找到了解决方法,你实际上必须编辑GAPI.class php代码。 You can read more here

将第32行更改为

   const account_data_url = 'https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles';

将行267268更改为

   $account_root_parameters['generator'] = strval($xml->generator);
   $account_root_parameters['generatorVersion'] = strval($xml->generator->attributes());

将第270行更改为

  $open_search_results = $xml->children('http://a9.com/-/spec/opensearch/1.1/');

将行322323更改为

 $report_root_parameters['generator'] = strval($xml->generator);
 $report_root_parameters['generatorVersion'] = strval($xml->generator->attributes());

将第325行更改为

 $open_search_results = $xml->children('http://a9.com/-/spec/opensearch/1.1/');

希望能帮助任何其他用户寻找并且找不到明确的文档。

答案 2 :(得分:0)

在我的案例中有用的是我需要在

中使用php代码
  1. code.google.com

  2. 然后转到您的Google帐户的security settings并启用安全性

  3. 确保在完成后重新启用它。