首页 > 解决方案 > Google 表格的解决方法访问权限

问题描述

作为 Google Apps 脚本的新手,我为电子表格创建/组合了一个脚本,该电子表格将与其他用户共享(可以编辑)。该脚本在我的帐户中运行良好,但是当由其他用户运行时,会出现以下消息:

“找不到具有给定 ID 的项目,或者您无权访问它。”

我假设这样做的原因是脚本发送电子邮件,创建新文件,并将数据从共享电子表格复制到我的云端硬盘文件夹中未与其他用户共享的其他电子表格(我不想共享它们)。

问题1:在权限设置中有没有办法围绕它?

由于脚本会在其他用户输入数据后清除共享电子表格的内容,因此我想创建一个执行以下操作的脚本:

  1. 在共享电子表格中创建新的隐藏工作表
  2. 将数据复制到新的隐藏工作表
  3. 清除原始工作表中的内容
  4. 运行用于发送电子邮件、创建新文件和从隐藏表复制数据的脚本的时间触发器,然后将其删除

问题 2:如果问题 1 的答案是否定的,那么除了上述步骤之外,有人能想到更好的方法吗?

谢谢。

标签: google-apps-scriptgoogle-sheetsweb-applicationspermissions

解决方案


您可以创建一个WebApp

  • Execute the app as: Me使用共享选项Who has access to the app:或将其部署为“您” ( Anyone) 。Anyone within [your domain]Anyone, even anonymous

  • 无论哪个用户运行该应用程序,WebApp 都将拥有您拥有的所有访问权限。

您可以在脚本中实现具有域范围委派的服务帐户

  • 如果您将脚本所需的所有范围和访问权限分配给服务帐户 - 您域的任何用户都将能够通过服务帐户运行脚本
  • 或者,您也可以设置服务帐户来冒充您,即代表您行事。

请参阅此处获取示例。


推荐阅读