我有一个在 App Engine 上运行的 Golang 应用程序,我想调用 Analytics API 来处理一些指标。在 App Engine 和开发服务器上。本页面介绍了使用服务帐户进行服务器到服务器通信以及使用 OAuth2 获取访问令牌的整个过程。我想避免自己这样做,所以我找到了Google APIs for Go和以下描述了如何为 App Engine 做到这一点的内容。我已将 App Engine 应用程序的服务帐户电子邮件添加到 Google Analytics 以获取读取权限。我使用Query Explorer 处理过查询,效果很好。我什至使用了此处的 API 查询 URI,其中包含正确的访问令牌并且工作正常。这适用于 cURL 或通过 App Engine 上的 urlfetch 调用它。我需要的是在 App Engine 上以及在使用开发服务器时自动获取访问令牌。此处是 URL 缩短器的示例,该示例已修改为使用 Analytics API。 client := http.Client{ Transport: &oauth2.Transport{ Source: google.AppEngineTokenSource(c, analytics.AnalyticsScope), Base: &urlfetch.Transport{Context: c}, }, } svc, err := analytics.New(&client) if err != nil { return nil, err } data, err := svc.Data.Ga.Get("...")开发服务器中的响应是401 Invalid Credentials, authError。这应该像这样工作还是我错过了什么?更新这样,问题就解决了一半。当我传入服务帐户的电子邮件和.pem文件时,它现在可以正常使用开发服务器。但是,App Engine 中的那个服务帐户不适用于上述代码!googleapi: Error 403: User does not have any Google Analytics account., insufficientPermissions用户应该是我在开发服务器上已经成功使用过的服务账号,所以我不是很明白这个问题。App Engine 和开发服务器上的代码完全相同。Google Analytics 设置为具有读取权限,我使用只读 API。它已经在开发服务器上运行,所以应该没问题。问题可能有什么不同?
- 1 回答
- 0 关注
- 196 浏览
添加回答
举报
0/150
提交
取消