【问题标题】:"Not sufficient permissions" google analytics API service account“权限不足”谷歌分析 API 服务帐号
【发布时间】:2013-01-09 15:19:49
【问题描述】:

我正在尝试通过服务帐户使用 Google Analytics API 获取数据。

我一直在 stackoverflow 上搜索如何执行此操作,并且一直在使用在几篇文章中找到的完全相同的代码,但在使其正常工作时遇到了问题。

来源:

Service Applications and Google Analytics API V3: Server-to-server OAuth2 authentication?

Service Applications and Google Analytics API V3: Error 101 (net::ERR_CONNECTION_RESET)

http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/prediction/serviceAccount.php

这是我得到的:

require_once('googleAPIGoogle_Client.php');
require_once('googleAPI/contrib/Google_AnalyticsService.php');

const CLIENT_ID = 'xxxxxxxx001.apps.googleusercontent.com';
const SERVICE_ACCOUNT_NAME = 'xxxxxx001@developer.gserviceaccount.com';


$keyfile = $_SERVER['DOCUMENT_ROOT']."/xxxxxxx284-privatekey.p12";


$client = new Google_Client();
$client->setAccessType('offline');
$client->setApplicationName("cc insights");


$key = file_get_contents($keyfile);
$client->setClientId(CLIENT_ID);

$client->setAssertionCredentials(new Google_AssertionCredentials(
    SERVICE_ACCOUNT_NAME,
    array('https://www.googleapis.com/auth/analytics.readonly'),
    $key)
);


$service = new Google_AnalyticsService($client);

$data = $service->data_ga->get("ga:xxxx7777", "2012-01-01", "2013-01-25", "ga:pageviews");
var_dump($data);

执行时出现以下错误:

致命错误:未捕获异常“Google_ServiceException”,并显示消息“调用 GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end-date=2013-01-25&metrics=ga%3Apageviews 时出错:(403) 用户对此配置文件没有足够的权限。”在 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66 堆栈跟踪:#0 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST .php(36): Google_REST::decodeHttpResponse(Object(Google_HttpRequest)) #1 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/service/Google_ServiceResource.php(178): Google_REST::execute(Object (Google_HttpRequest)) #2 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383): Google_ServiceResource->__call('get', Array) #3 /Applications/XAMPP/ xamppfiles/htdocs/insights/application/libraries/Google.php(46): Google_DataGaServiceResource->get('g in /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php 在第 66 行

因为我使用的代码与工作示例完全相同,我认为这可能是 API 或服务帐户设置的问题?

这是我添加到分析帐户的用户:

这是 api 访问帐户:

有人知道我做错了什么吗?

【问题讨论】:

  • 刚刚开始使用 API 并遇到了类似的问题 - 如果您解决了问题,请告诉我?
  • 现在面临同样的问题。

标签: php google-analytics-api jwt


【解决方案1】:

我遇到了完全相同的错误,这为我解决了:

我使用的是帐户 ID 而不是视图 ID。切换到视图 ID 修复了它 - 它始终是“视图 ID”,而不是帐户或属性 ID(看起来像“UA-xxx”)。查看 ID 用于特定的网络媒体资源,可以在管理->查看(第 3 列)->查看设置中找到。它是一个没有破折号的整数。

https://stackoverflow.com/a/15789266/1391229

【讨论】:

  • 容易犯错谢谢@jarace87。您可以在“管理员”(右上角)->“查看(配置文件)”(最右侧列)->“查看设置”(第一个选项)->“查看 ID”下的分析 Web 控制台中找到所需的 ID。那就是你想要的那个。它不是“UA-xxx”!
  • 这帮助很大。文档确实提到它是一个“视图 ID”,但没有告诉你在哪里可以找到它。谢谢!
  • 今天也遇到了这个问题,我觉得这个名字随着新的布局而改变了。转到“管理”,然后在右侧的第三列(名为“查看”)中,您将看到“查看设置”的链接,点击此处,您可以使用“查看 ID”
  • 为什么这个答案不在顶部?
  • 我使用的是配置文件 ID 而不是视图 ID,因为我已经阅读过我需要使用配置文件 ID。切换到 View Id 并使用创建“服务帐户密钥”后下载的私钥文件后,对我来说这个错误消失了。
【解决方案2】:

【讨论】:

    【解决方案3】:

    在尝试找到解决方案 2 周后帮助了我很多:

    Analytics Console -> 管理员 -> 查看(配置文件)-> 查看设置 -> 查看 ID

    【讨论】:

      【解决方案4】:

      同样的问题。通过使用 VIEW id 而不是帐户 ID (UA-XXXXX-1) 解决了它。

      Analytics Console > Admin -> View (Profile) -> View Settings -> View ID
      

      确保将服务帐户添加到 Google Analytics Console 中的用户列表中。只需在开发人员控制台的凭据、API 和权限部分进行设置,仍然不会授予它访问您的分析的权限。

      Analytics Console > Admin -> Account -> User Management -> "Add permissions for:"
      

      【讨论】:

        【解决方案5】:

        有问题.. 原来帐户 ID 隐藏在您的分析帐户的 URL 中!

        https://developers.google.com/analytics/devguides/reporting/core/v3/#user_reports

        网址通常如下所示:

        https://www.google.com/analytics/web/?hl=en#management/Settings/a51343283w84330433p87396224/%3Fm.page%3DAccountSettings/

        我们要查找的 ID 跟在字母 p 后面。

        在上面的示例中,有效的 ID 是:87396224

        【讨论】:

          【解决方案6】:

          使用查看 ID 而非帐户 ID,在“管理”选项卡上的“查看设置”“查看 ID”。

          【讨论】:

            【解决方案7】:

            我在使用 .net 库时遇到了同样的问题,经过一些修补后,我找到了解决方案:

            转到您的谷歌分析管理网站并将服务帐户添加为用户并授予该帐户必要的权限

            【讨论】:

              【解决方案8】:

              可能您正在使用其他客户端 ID:客户端密码:获取另一个配置文件 ID 详细信息

              【讨论】:

              【解决方案9】:

              今天遇到了同样的问题,profileId 很难找到,你可以在分析中的每个 Url 中找到它,比如说https://www.google.com/analytics/web/#management/Settings/aXXXXXXwYYYYYYYpZZZZZZZ/ 这是ZZZZZZZ部分

              【讨论】:

                【解决方案10】:

                得到了同样的错误,但过了一段时间我意识到我正在使用我的谷歌浏览器(我自己的电子邮件地址)使用这个脚本,但分析 API 正在公司电子邮件上运行。所以解决方案可能是编辑你的谷歌浏览器的设置。只需在您的 google chrome(设置)中断开与 gmail 帐户的连接,然后再次测试。

                【讨论】:

                • 这对我退出 Chrome 或使用隐身窗口或其他浏览器很有用。真的很奇怪,但它应该很重要!
                【解决方案11】:

                在另一个应用程序上,我得到“没有足够的权限”,发现我的 .htaccess 文件有一些文件限制导致了问题。

                【讨论】:

                • 不要认为这是问题所在。只有一个基本的 mod 重写来删除 index.php
                猜你喜欢
                • 2019-05-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-11-15
                • 2013-05-21
                相关资源
                最近更新 更多