单击“允许”后,Google Analytics API OAuth无法连接到本地主机

时间:2018-07-11 04:35:08

标签: google-analytics google-api google-oauth google-analytics-api google-oauth2

我正在尝试获取Google Analytics API的访问令牌。

在开发人员控制台中创建项目并向Analytics API授予访问权限后,我进入了“创建凭据”步骤,并为Web应用程序创建了新凭据。

在这些凭据上,我将Javascript起源设置为http://localhost:8080,也将其设置为http://localhost:5000。然后,我将授权的重定向URI设置为http://localhost:8080/oauth2callbackhttp://localhost:5000/oauth2callback

然后,当我尝试授权时,要求我输入我的clientId和密码,然后打开新的浏览器选项卡,并要求我选择一个帐户,然后选择“允许”。

>

enter image description here

然后,当我单击“允许”时,我将转至此页面: enter image description here

我还尝试为“其他”应用程序类型创建凭据,但是发生了完全相同的事情。

我在堆栈上发现了很多与此有关的帖子,但是没有一个答案能够解决我的问题。不知道要提供哪些其他信息。我什至尝试清除历史记录并使用其他浏览器,但没有成功。

如何使用OAuth将应用程序授权授予Google Analytics(分析)?

1 个答案:

答案 0 :(得分:0)

此问题与localhost或重定向uris或JavaScript起源无关。问题是您的代码未设置为处理来自身份验证服务器的回叫。如果您发布了代码,将会有所帮助,因此很难知道问题出在哪里。

您应该在Hello analytics js tutorial

上查看官方示例
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Hello Analytics Reporting API V4</title>
  <meta name="google-signin-client_id" content="<REPLACE_WITH_CLIENT_ID>">
  <meta name="google-signin-scope" content="https://www.googleapis.com/auth/analytics.readonly">
</head>
<body>

<h1>Hello Analytics Reporting API V4</h1>

<!-- The Sign-in button. This will run `queryReports()` on success. -->
<p class="g-signin2" data-onsuccess="queryReports"></p>

<!-- The API response will be printed here. -->
<textarea cols="80" rows="20" id="query-output"></textarea>

<script>
  // Replace with your view ID.
  var VIEW_ID = '<REPLACE_WITH_VIEW_ID>';

  // Query the API and print the results to the page.
  function queryReports() {
    gapi.client.request({
      path: '/v4/reports:batchGet',
      root: 'https://analyticsreporting.googleapis.com/',
      method: 'POST',
      body: {
        reportRequests: [
          {
            viewId: VIEW_ID,
            dateRanges: [
              {
                startDate: '7daysAgo',
                endDate: 'today'
              }
            ],
            metrics: [
              {
                expression: 'ga:sessions'
              }
            ]
          }
        ]
      }
    }).then(displayResults, console.error.bind(console));
  }

  function displayResults(response) {
    var formattedJson = JSON.stringify(response.result, null, 2);
    document.getElementById('query-output').value = formattedJson;
  }
</script>

<!-- Load the JavaScript API client and Sign-in library. -->
<script src="https://apis.google.com/js/client:platform.js"></script>

</body>
</html>