服务帐户 - >脚本执行API - >来电者没有权限

时间:2017-02-23 14:31:27

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

目前,我正在使用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的+脚本API

- >提供以下范围:

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

(最后一个范围是脚本的Project属性中可见的范围。

我已经尝试过这个过程来绑定脚本&每次我得到相同的错误时,每次都将它们与项目相关联。

这对服务器到服务器非常重要,因此我无法进行任何用户交互,因为它必须生成报告和用一些标准结构填充它们+之后用“简单....”方式验证结构。

1 个答案:

答案 0 :(得分:0)

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

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

有关详细信息,请查看这些线程是否可以为您提供帮助。