【问题标题】:DefaultClient scope migrating from App Engine (Go) 1.9 to 1.11DefaultClient 范围从 App Engine (Go) 1.9 迁移到 1.11
【发布时间】:2019-09-18 08:58:56
【问题描述】:

我最近一直在将 App Engine (Go) 应用从 Go 1.9 迁移到 1.11。我已经按照 Migrating your App Engine app from Go 1.9 to Go 1.11 文档,不包括可选文档。我计划在完成这项工作后稍后执行可选任务。

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

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

我查了一下,我使用的范围是https://www.googleapis.com/auth/androidpublisher,还是Google Play Developer API documentation中列出的范围。

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

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

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

【问题讨论】:

    标签: google-app-engine go google-play-developer-api


    【解决方案1】:

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

    看看here

    告诉我。

    【讨论】:

    • 我去看看,谢谢。有人会认为文档中会涵盖如此重大的变化。
    • 我尝试设置一个服务帐户并使用它,但现在我得到的错误是“错误 401:当前用户没有足够的权限来执行请求的操作。,permissionDenied”。我什至授予了服务帐户项目范围的“所有者”权限,而不是通常的“编辑者”,但我仍然遇到同样的错误。
    • 我一直在调查它,约翰,奇怪的是,似乎许多有类似问题的人都在评论说,权限传播需要 24-48 小时。看看here,如果不是这样,我们将进一步调查。告诉我
    • Stefan,是否存在不再支持应用程序默认凭据的原因。这似乎是一个重大变化,但我在任何地方都没有找到任何文档,所以甚至不清楚它是故意的还是错误的。
    • 没有理由或官方文档说明不再支持应用程序默认凭据,我给您的答案是针对与您有类似问题的人的解决方法。让我们试着找出它,如果它是一个错误(我倾向于认为它不是),我们将报告它。我有另一个想法,我们可以试试。如果您转到 IAM -> 服务帐户 -> App Engine 默认服务帐户 -> 创建密钥。由于您拥有默认服务帐户的权限,因此请尝试使用该密钥来解决问题,这样我们就可以找出它是否是 24-48 小时的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多