“权限不足”谷歌分析API服务帐户

2022-08-30 14:05:23

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

我一直在搜索stackoverflow如何做到这一点,并一直在使用在几个帖子上找到的完全相同的代码,但遇到问题来使其正常工作。

来源:

服务应用程序和 Google Analytics API V3:服务器到服务器 OAuth2 身份验证?

服务应用程序和 Google Analytics(分析)API V3:错误 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/service/Google_REST.php(36): Google_REST::d ecodeHttpResponse(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 on line 66

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

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

这是 API 访问帐户:api access

有谁知道我做错了什么?


答案 1

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

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

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


答案 2

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


推荐