我在我的项目中使用Analytics Reporting API来检索当前正在浏览我的网站的用户数量。考虑以下代码:
gapi.auth2.init({
'clientId': '<Client_ID>',
'scope': 'https://www.googleapis.com/auth/analytics https://www.googleapis.com/auth/analytics.readonly',
}).then(function(authData) {
/*1*/
return gapi.client.request({
'path': 'https://www.googleapis.com/analytics/v3/data/realtime?ids=<VIEW_ID>&metrics=rt:activeUsers&dimensions=rt:latitude,rt:longitude'
});
但是当我在/ * 1 * /的行上设置调试器并想调查“ authData”中的内容时,在开发人员控制台中,我看到以下内容:
> JSON.stringify(gapi.auth2.getAuthInstance()。isSignedIn)
>“ {” Ab“:false,” Aia“:{” value“:false},” hg“:{” hg“:[]}}” 在authData内部,我有以下内容:
> JSON.stringify(a.currentUser)
>“ {” Ab“:{” El“:null,” Zi“:null},” Aia“:{” value“:{” El“:null,” Zi“:null}},” hg “:{” hg“:[]}}”
我认为,这表示已认证用户的缺席。 此外,身份验证请求的http响应返回以下错误
> {错误:“ IMMEDIATE_FAILED”,详细信息:“并非所有范围都得到批准。”}
问题是:这是什么意思,我可以在哪里自行批准这些范围,或者可能有Google的人来批准我的请求的范围。谢谢。
答案 0 :(得分:0)
我酸痛地偶然发现了这个解决方案。范围似乎未获批准的原因是,该应用程序不被Google帐户接受为访问分析数据的手段(这非常关键,因为我使用绑定到该特定帐户的oAuth2 clientID)。因此,解决方案是允许您的项目有权访问您的帐户。可悲的是,在api的文档中没有这样的声明,也没有找到任何示例。