DefaultClient 范围从 App Engine (Go) 1.9 迁移到 1.11

DefaultClient scope migrating from App Engine (Go) 1.9 to 1.11

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

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

Error 403: Insufficient Permission: Request had insufficient authentication scopes., insufficientPermissions

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

我通过从 golang.org/x/oauth2/google 库调用 DefaultClient 为客户端使用 App Engine 默认服务帐户,returns 客户端没有错误

当我用 Go 1.9 测试相同的代码时,根本没有身份验证问题,并且 API 有效。我猜这些是身份验证设置中的某些内容已更改,但我找不到任何关于它的文档,也找不到我应该做些什么。

我不得不想象很多人都不得不进行此迁移,但我找不到任何关于此问题的帖子,所以我不知道为什么会得到它。

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

看看

告诉我。