【发布时间】:2016-10-05 18:45:13
【问题描述】:
我们正在开发一个使用 Google 电子表格作为输入的程序。读取、处理电子表格的值并将结果显示在网页中。
当用户注册时,我们使用服务帐户从模板中克隆电子表格。该模板有一些我们想用来帮助用户在电子表格中介绍值的脚本。
但脚本似乎拥有服务帐户的所有者,并且根据 Google 属于服务帐户的脚本无法执行。
错误信息是:
Google Apps 脚本:该脚本无法运行,因为它归服务帐户所有。运行前请将项目复制或转移到有效账号。
我们将电子表格的所有权从服务帐户转移给 gmail 用户,如果该用户创建了一个脚本,它可以完美运行,但是从模板继承的脚本似乎仍然拥有服务帐户的所有者,因此不能被处决了。
我的问题是......我如何将项目(脚本)的所有权从服务帐户转移给另一个用户?
我用谷歌搜索并在开发者 Google 电子表格网站上搜索,但找不到答案
【问题讨论】:
-
脚本在电子表格中吗?似乎脚本未附加到电子表格本身,问题在于脚本文件本身属于服务帐户。如果您有 Google Apps 脚本文件,则将该文件的所有权转移到 Google 帐户。或者更好的是,如果它是从 Web 应用程序启动的,请确保将其设置为执行作为访问 Web 应用程序的用户(通常默认为 me)
-
@Vytautas 我通过打开工具 | 在模板上创建了脚本。脚本编辑器 |创建一个新项目,所以我总是将脚本附加到电子表格中。我认为问题在于从模板克隆会创建一个新的电子表格,其中脚本属于服务帐户。由于我不知道如何将脚本项目的所有权转移到谷歌帐户,所以我被卡住了。
-
用户如何启动脚本?是通过网络应用程序运行它还是他们打开电子表格并从那里运行它?
-
@Vytautas 用户打开电子表格,然后脚本应该运行
-
你不会对triggers 限制身份验证有问题吗? onOpen 不知道谁在运行会话。您可以尝试转移脚本所有权的另一件事是转到
Resources → Developers Console Project → Click link at the top,然后转到 IAM&Admin 并在那里更改所有者。我能想到的就这些了。
标签: google-apps-script google-sheets google-drive-api google-cloud-iam