首页 > 解决方案 > DefaultClient 范围从 App Engine (Go) 1.9 迁移到 1.11

问题描述

我最近一直在将 App Engine (Go) 应用程序从 Go 1.9 迁移到 1.11。我已按照将 您的 App Engine 应用从 Go 1.9 迁移到 Go 1.11文档中的步骤进行操作,不包括可选的。一旦我开始工作,我计划稍后执行可选任务。

我可以构建应用程序,并且可以很好地部署它。除了一个用于在 Google Play IAP 上查找某些信息的 API 之外,大多数东西都可以正常工作。当我这样做时,我收到以下错误:

错误 403:权限不足:请求的身份验证范围不足。,权限不足

我查过了,我使用的范围是https://www.googleapis.com/auth/androidpublisher,仍然是Google Play Developer API 文档中列出的范围。

我通过DefaultClientgolang.org/x/oauth2/google库中调用为客户端使用 App Engine 默认服务帐户,它返回一个没有错误的客户端

当我使用 Go 1.9 测试相同的代码时,根本没有身份验证问题,并且 API 可以正常工作。我猜这些是身份验证设置中的一些东西已经改变,但我找不到任何关于它的文档,也找不到我应该做些什么不同的事情。

我不得不想象很多人不得不进行这种迁移,而我找不到任何有这个问题的帖子,所以我不知道为什么会得到它。

标签: google-app-enginegogoogle-play-developer-api

解决方案


我认为问题在于 Go 1.9 和 1.11 的运行时差异。它似乎不再允许您使用应用程序默认凭据,您必须通过 1.11 中的 JSON 文件来设置它们。我发现有人与您有非常相似的问题,他们通过上传密钥并使用它来获取客户端来使用解决方法。

看看这里

让我知道。


推荐阅读