0

为了访问实时报告 api,我使用了authSample.html文件,它使用 Oauth 2.0 client_id 进行授权和 api 请求。

但是,谷歌实时报告api说

“您的应用程序必须使用 OAuth 2.0 来授权请求​​。不支持其他授权协议。如果您的应用程序使用 Google 登录,则为您处理授权的某些方面。”

Google 登录部分是什么意思?

我的应用程序已经设置了 Google 登录,这是否意味着我不能使用 auth.html 文件和 Oauth2.0 凭据?

我已经用谷歌搜索了,但没有找到任何令人满意的答案。

4

1 回答 1

0

我不确定您使用的是什么技术,但这是一个很好的参考:

https://developers.google.com/api-client-library/

就像这样:

https://github.com/google/google-api-javascript-client/blob/master/samples/authSample.html

可能是您将两个或多个样本复制到同一个文件中并且它们正在竞争,或者访问报告的人没有权限。

https://developers.google.com/analytics/devguides/reporting/realtime/v3/authorization

从上面的页面:

故障排除

在以下情况下您的授权失败:

如果您的 access_token 已过期或您使用了错误的 API 范围,您将收到 401 状态代码。如果授权用户无权访问视图(配置文件),您将收到 403 状态代码。确保您获得了正确用户的授权,并且他们确实拥有您选择的视图(配置文件)。OAuth 2.0 游乐场

该工具允许您通过 Web 界面完成整个授权流程。该工具还显示进行授权查询所需的所有 HTTP 请求标头。如果您无法获得在自己的应用程序中工作的授权,则应尝试通过 OAuth 2.0 操场使其工作。然后,您可以将来自 Playground 的 HTTP 标头和请求与您的应用程序发送到 Google Analytics 的内容进行比较。此检查是一种确保您正确格式化请求的简单方法。

无效的授权

当您尝试使用刷新令牌时,以下内容会返回一个 invalid_grant 错误:

您的服务器时钟与网络时间协议 - NTP 不同步。已超出刷新令牌限制。应用程序可以请求多个刷新令牌来访问单个 Google Analytics 帐户。

例如,如果用户想在多台机器上安装应用程序并访问同一个 Google Analytics 帐户,那么每台机器都需要一个单独的令牌。当刷新令牌的数量超过限制时,旧令牌将失效。如果应用程序尝试使用无效的刷新令牌,则会返回一个 invalid_grant 错误响应。

每对唯一的 OAuth 2.0 客户端和 Google Analytics 帐户的限制是 25 个刷新令牌。如果应用程序继续为同一客户/帐户对请求刷新令牌,一旦第 26 个令牌发出,之前发出的第 1 个刷新令牌将失效。第 27 个请求的刷新令牌将使之前发布的第二个令牌无效,依此类推。

注意:25 个刷新令牌的限制可能会发生变化。

示例: https ://developers.google.com/analytics/devguides/reporting/realtime/v3/libraries

过去,当我构建这些报告时,我了解到您不能依赖示例作为工作代码,因为环境可以并且会有所不同,因此您需要回显/打印错误代码以查看实际错误是。如果您可以发布特定的网络/服务器错误,我们可以从那里进行故障排除。

我希望所有这些都会有所帮助。

于 2017-05-11T21:09:19.837 回答