【问题标题】:Service account -> Script execution API -> The caller does not have permission服务帐号 -> 脚本执行 API -> 调用者没有权限
【发布时间】:2017-02-23 14:31:27
【问题描述】:

目前我正在使用 Java 客户端通过 Drive API 生成一个 Google 文档文件。这很好用,作为凭据,我们使用的是服务帐户。创建文档后,该帐户将与登录用户的电子邮件共享它。到目前为止,一切顺利。

第二部分是为这个新的空文档生成标题和其他内容。我们发现脚本可以部署为 API 可执行文件 + 通过“脚本执行 API”触发,但会遇到:

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
"The caller does not have permission"

从我发现的其他线程和主题中,它的范围从“它无法与服务帐户一起使用到正确关联项目”,我尝试过:

-> 为文档创建绑定脚本,部署为 API,将项目编号更改为服务帐户也是所有者的编号

-> 启用 Drive API 的 + Script API

-> 提供以下范围:

DriveScopes.DRIVE_FILE, ScriptScopes.DRIVE, "https://www.googleapis.com/auth/documents"

(最后一个范围在脚本的项目属性中可见。

我已经为绑定脚本和独立脚本尝试了这个过程,每次将它们与项目关联时,每次我都会遇到相同的错误。

服务器到服务器的工作非常重要,所以我不能进行任何用户交互,因为它必须生成报告并用一些标准结构填充它们+具有“简单....”的方式来验证结构之后.

【问题讨论】:

    标签: java google-apps-script google-api


    【解决方案1】:

    您收到此禁止错误的一个原因是您使用的范围错误/不完整。因此,请确保在应用程序中使用正确的范围。您可以通过查看此SO question 中的答案来验证它。

    我还发现有一个已知的错误Execution API - can't be use a service account。因此,只需检查此问题的替代解决方案即可。

    如需更多信息,请查看这些主题是否对您有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-07
      • 2021-04-19
      • 1970-01-01
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 2021-04-28
      相关资源
      最近更新 更多