javascript - Google Analytics Reporting API v3 要求用户登录

标签 javascript google-analytics google-oauth google-analytics-api

我正在尝试从 Google Analytics 获取我们网站的唯一用户数据,然后在自定义图表中将这些数据与其他数据一起显示。只要我登录到谷歌,我就已经设置好了一切并正常工作。但是,如果我没有登录(或其他没有权限的用户)点击页面失败。

目标:我只想能够查询唯一用户的分析 API。

这是由于“需要登录”错误而失败的代码片段。

gapi.client.analytics.data.ga.get({
  'ids': 'ga:' + profileId,
  'dimensions': 'ga:date',
  'start-date': '30daysAgo',
  'end-date': 'yesterday',
  'metrics': 'ga:sessions',
}).execute(function (results, resultsJSONStringified) {
  // Do Stuff...
});

最佳答案

要访问 Google Analytics API 和大多数 Google API,您必须经过身份验证。您当前正在使用请求访问您的 Google Analytics 数据的 OAuth2 进行身份验证。现在,如果其他人运行此脚本,它将访问他们的 Google Analytics 数据,而不是来自您网站的数据。

在此实例中,您只想显示自己的数据,因此我建议您考虑使用 service account .通过使用服务帐户,您可以授予该帐户访问您的 Google Analytics(分析)数据的权限,然后它将为所有人加载数据,无需用户交互。

您将遇到的问题是您不能通过 JavaScript 使用服务帐户。您将需要使用服务器端脚本语言。我还建议您缓存此信息。没有理由真的每天运行一次此请求。将其设置为在晚上运行,将信息保存到数据库或其他内容,然后将其显示给您的用户。

关于javascript - Google Analytics Reporting API v3 要求用户登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24128672/

相关文章:

google-analytics - 是否有一个选项可以跟踪(目标)带有复选框的ajax表单(逐个屏幕工作)?

google-analytics - google 如何在 Bigquery/Google-Analytics 中设置 fullVisitorId/Client ID?

iphone - ld : library not found for -lGoogleAnalytics

javascript - 为什么一个 AngularJS 服务绑定(bind)可以工作,而另一个却不能

javascript - 在 Socket.IO 上发送 Typescript 数据对象

javascript - 使用 RxJs Observables - 为什么数据更改时订阅者没有收到通知?

google-oauth - 如何使用刷新 token 测试刷新我的Google访问 token

javascript - GET 请求,谷歌 picasa API

node.js - Gmail API 是否支持 JWT?

javascript - 用框架的 ajax 响应替换整个页面