我正尝试通过OAuth2访问Google AnalyticsAPI。
我做了什么:
打开开发者控制台> API和Auth>凭证
创建新的客户ID
生成p12键
复制服务器上的密钥
打开Google Analytics分析页>管理员>帐户>用户管理
从生成的客户端ID添加电子邮件,例如:xxxxxxxx-xxxxxxxxxxxxxxx@developer.gserviceaccount.com
点击此电子邮件阅读并分析权限
然后当我回到开发者控制台>允许。新电子邮件将添加到具有“编辑权限”的服务帐户
重新检查Google Analytics是否已启用且数据是否已进入。
现在我已经安装了widop / google-analytics-bundle并配置了捆绑包:
widop_google_analytics:
client_id: "xxxxxxxx-xxxxxxxxxxxxxxx@developer.gserviceaccount.com"
profile_id: "ga:12345678"
private_key_file: "mykey.p12"
http_adapter: "widop_http_adapter.curl"
我尝试创建的查询是:
$profileId = 'ga:12345678';
$query = new Query($profileId);
$query->setStartDate(new \DateTime('-2months'));
$query->setEndDate(new \DateTime());
$query->setMetrics(array('ga:visits' ,'ga:bounces'));
$query->setDimensions(array('ga:browser', 'ga:city'));
$query->setSorts(array('ga:country', 'ga:browser'));
$query->setFilters(array('ga:browser=~^Firefox'));
$query->setSegment('gaid::10');
$query->setStartIndex(1);
$query->setMaxResults(10000);
$query->setPrettyPrint(false);
$query->setCallback(null);
$clientId = 'xxxxxxxx-xxxxxxxxxxxxxxx@developer.gserviceaccount.com';
$privateKeyFile = 'mykey.p12';
$httpAdapter = new CurlHttpAdapter();
$client = new Client($clientId, $privateKeyFile, $httpAdapter);
$token = $client->getAccessToken();
$service = new Service($client);
$response = $service->query($query);
return $response;
作为回复,我收到了这个错误:
User does not have sufficient permissions for this profile.
当我打开开发者控制台>概述> 1小时(标签)
我注意到请求正在进行中。
从所有这些 - 我认为身份验证和查询是正常的,但用户无权获取任何类型的数据,这是奇怪的,因为我已授予读取和分析权限 xxxxxxxx-xxxxxxxxxxxxxxx@developer.gserviceaccount.com
该异常的原因是什么?
答案 0 :(得分:1)
我不知道你是否已经解决了这个问题。 对我而言,解决方案是在分析帐户中使用视图ID而不是帐户ID。 视图ID位于Google Analytics管理面板设置的第三列。
抱歉我的英文。