使用App Engine开发服务器向Google API声明身份

Murrekatt:

我有一个在App Engine上运行的Golang应用程序,我想调用Analytics API处理一些指标。在App Engine和开发服务器上。

此页面描述了使用服务帐户进行服务器到服务器通信以及使用OAuth2获取访问令牌的总体过程我希望自己避免这样做,所以我找到了Go的Google API和以下描述如何为App Engine做到的API

我已将App Engine应用程序的服务帐户电子邮件添加到Google Analytics(分析),以进行读取访问。

我使用查询浏览器来处理查询,并且效果很好。我什至从这里使用了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无效凭据authError。

这应该像这样工作还是我错过了什么?

更新

因此,问题解决了一半。当我传递服务帐户的电子邮件和.pem文件时,现在可以使用开发服务器正常工作但是,App Engine中的同一服务帐户无法与以上代码一起使用!

googleapi: Error 403: User does not have any Google Analytics account., insufficientPermissions

用户应该是我已经在开发服务器上成功使用的服务帐户,因此我不太了解这个问题。它与App Engine和开发服务器上的代码完全相同。

Google Analytics(分析)设置为具有读取访问权限,我使用的是只读API。而且它已经可以在开发服务器上运行了,应该没问题。

问题可能有什么不同?

Murrekatt:

它可以提供开发服务器与如启动必要的信息在这里

$ dev_appserver.py --appidentity_email_address email --appidentity_private_key_path file.pem

对于App Engine,您无需使用此服务帐户,而应使用具有应用程序名称的帐户:

[email protected]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Matplotlib与Google App Engine本地开发服务器

获取 403 尝试调用托管在 App Engine Java 8、开发应用服务器上的 Google Cloud Endpoints API

如何在Google App Engine的本地开发服务器上使用Python 3

无法使用PHP在Google App Engine开发服务器上写入文件?

使用Google App Engine开发服务器和mysql的Django Modal save()函数未实现

身份服务器-使用刷新令牌获取更新的声明

EEException:服务器返回 HTTP 代码:404 — 使用 Google App Engine 和 Google Earth Engine 测试应用程序并具有经过身份验证的访问

使用Google Play开发者API进行服务器端授权?

PHP Google App Engine在本地开发服务器上上传文件

如何在Java 8模式下运行IntelliJ的Google App Engine开发服务器插件

Google App Engine queue.yaml在开发服务器中不起作用

Google App Engine-开发服务器上的代理/隧道权限被拒绝

如何自动重新加载App Engine开发服务器?

使用OAuth 2.0和Google API进行服务器到服务器身份验证的示例

使用Google Apps脚本API可执行服务器到服务器的身份验证

如何获取本地开发服务器中Google云存储上载文件的公共链接(Google App Engine + JAVA)

是否可以使用Google Calendar API对服务器进行身份验证?

如何在Google App Engine和本地开发服务器中将服务帐户与私钥文件和模拟用户(DWD)一起使用?

由于 Flask 路由中的错误,在本地开发服务器中查看 Google App Engine Python 回溯

使用内置身份服务器在ASP Net Core 3.0中添加和访问声明

无法使用Windows身份验证向SMTP服务器进行身份验证

在自定义域上使用OpenID用户API时,App Engine上出现500服务器错误

如何停止或禁用Google App Engine生产服务器?

Django Google App Engine服务器错误500

如何选择Google App Engine服务器的位置

Google App Engine标准环境中的gunicorn服务器

Google App Engine (Flex) 使用 express 服务器和单独的 socket.io 服务器

如何使用服务器密钥在Google Spreadsheet Api V4中进行身份验证

使用 CURL 向 SAML 服务器进行身份验证