嘿
我在营销机构工作,我在Google AppScripts中开发了一个小脚本,从客户的Google Analytics帐户中提取数据并将其格式化为Google幻灯片演示文稿 .
How it works:
我们的客户允许我们访问他们的Google Analytics(分析)视图,并使用Google Analytics(分析)API获取我们在主帐户上与我们共享的每个视图的ID,并使用这些ID向API发出请求 .
该脚本几乎适用于所有视图,但最近我遇到了一些Google Analytics帐户的问题 .
基本上我得到 401 response code ,尽管经理可以访问给定的属性 .
我用来向API发出请求的方法是 Analytics.Data.Ga.get ,结果如下:
[18-10-23 06:57:02:128 PDT] {totalsForAllResults={ga:users=0}, totalResults=0,
columnHeaders=[{columnType=DIMENSION, dataType=STRING, name=ga:userGender},
{columnType=METRIC, dataType=INTEGER, name=ga:users}],
profileInfo={profileName=Toutes les données du site Web, accountId=xxxxxx,
profileId=xxxxxx, tableId=ga:xxxxxx,
webPropertyId=UA-xxxxxx-x, internalWebPropertyId=xxxxxx}, itemsPerPage=1000,
kind=analytics#gaData, query={end-date=2018-09-30, max-results=1000,
start-index=1, ids=ga:174758787, start-date=2018-07-01, metrics=[ga:users],
dimensions=ga:userGender}, containsSampledData=false,
id=https://www.googleapis.com/analytics/v3/data/ga?ids=ga:xxxxxx&dimensions=ga:userGender&metrics=ga:users&start-date=2018-07-01&end-date=2018-09-30, selfLink=https://www.googleapis.com/analytics/v3/data/ga?ids=ga:xxxxxx&dimensions=ga:userGender&metrics=ga:users&start-date=2018-07-01&end-date=2018-09-30}
当我转到那个链接“id”链接时,这是我得到的:
{"error":
{
"errors":[
{
"domain":"global",
"reason":"required",
"message":"Login Required",
"locationType":"header",
"location":"Authorization"
}
],
"code":401,
"message":"Login Required"
}
}
我收集的这与OAuth2协议有关,我从来不必担心,因为它通常由AppScripts自动处理 . 我几乎到处寻找自己解决问题的方法,但我似乎无法围绕OAuth 2协议,以及它在这种情况下的工作方式 .
我已经为我的脚本创建了凭据,因此我可以访问此项目的客户端ID和客户端密钥 .
我的假设是有问题的帐户的令牌已经过期,我需要以某种方式刷新它们并给它们正确的范围 . 我根本不知道该怎么做 .
如果有人能在这一个上启发我,我将非常感激:)
祝你今天愉快!!
1 回答
修复了问题,结果证明它与OAuth2协议无关 . Google Analytics针对这些帐户关闭了人口统计信息报告,这就是为什么我没有从我的查询中获得任何回复 .
如果有人想知道,REST请求中的错误401是因为最后没有传递任何令牌或密钥(使用“?key = ...”或“access_token = ...”),所以就像一些匿名的人试过访问数据 .
如果您想知道如何获取访问令牌,可以使用Query Explorer获取令牌 . 运行查询后,选择“在查询URI中包含当前access_token(将在约60分钟后过期)” .
无论如何,这可以关闭 .