使用oAuth2的Google Analytics(分析)报告API身份验证的响应为“未批准所有范围。”

时间:2018-08-11 15:36:12

标签: google-api google-analytics-api

我在我的项目中使用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的人来批准我的请求的范围。谢谢。

1 个答案:

答案 0 :(得分:0)

我酸痛地偶然发现了这个解决方案。范围似乎未获批准的原因是,该应用程序不被Google帐户接受为访问分析数据的手段(这非常关键,因为我使用绑定到该特定帐户的oAuth2 clientID)。因此,解决方案是允许您的项目有权访问您的帐户。可悲的是,在api的文档中没有这样的声明,也没有找到任何示例。