有没有办法从 Google App Script 分配触发器所有权?
Is there a way to assign a trigger ownership from Google App Script?
我对 Drive 中的触发器和权限有疑问,关于表单:
- 有一个 共享文件夹 和 Forms。
- 所有这些表格都是我的属性(我是所有者)
- Everyday,其他有编辑权限的用户,复制其中一份
到另一个共享文件夹。
- 'some other user' 是该副本的新所有者。
- 该副本有一个脚本(就像原始表单一样),当您打开时,
它执行 2 个操作:
-
Change the owner of the Form to me
-
Set up a trigger to delete the Form
问题是,在创建触发器时,脚本没有注意到所有者在执行期间发生了变化。所以,最后我拥有该文件,但到时候不允许脚本删除该文件,因为我不是该触发器的“作者”或所有者。
有办法解决吗?
可安装的触发器始终代表创建它的人运行 - 即通过使用他的帐户登录授权触发器的人
如果您的 set-up 是这样的,用户需要删除您拥有的表单,他需要代表您执行。
可能的配置:
1.在公司代码中调用 Web App
- 如果您将 WebApp 部署为
Execute the app as: Me
和 Who has access to the app:Anyone within [your domain]
- 那么通过其部署调用 WebApp 的每个人 URL 都可以代表您执行它(您也可以将参数传递给WebApp 通过将它们作为查询字符串添加到 URL)
2。使用 service account with impersonation
- 这将确保脚本始终代表模拟用户(可以是您!)运行,无论代码是谁运行的
- 见
我对 Drive 中的触发器和权限有疑问,关于表单:
- 有一个 共享文件夹 和 Forms。
- 所有这些表格都是我的属性(我是所有者)
- Everyday,其他有编辑权限的用户,复制其中一份 到另一个共享文件夹。
- 'some other user' 是该副本的新所有者。
- 该副本有一个脚本(就像原始表单一样),当您打开时, 它执行 2 个操作:
-
Change the owner of the Form to me
-
Set up a trigger to delete the Form
问题是,在创建触发器时,脚本没有注意到所有者在执行期间发生了变化。所以,最后我拥有该文件,但到时候不允许脚本删除该文件,因为我不是该触发器的“作者”或所有者。
有办法解决吗?
可安装的触发器始终代表创建它的人运行 - 即通过使用他的帐户登录授权触发器的人
如果您的 set-up 是这样的,用户需要删除您拥有的表单,他需要代表您执行。
可能的配置:
1.在公司代码中调用 Web App
- 如果您将 WebApp 部署为
Execute the app as: Me
和Who has access to the app:Anyone within [your domain]
- 那么通过其部署调用 WebApp 的每个人 URL 都可以代表您执行它(您也可以将参数传递给WebApp 通过将它们作为查询字符串添加到 URL)
2。使用 service account with impersonation
- 这将确保脚本始终代表模拟用户(可以是您!)运行,无论代码是谁运行的
- 见