【问题标题】:Apps Script Execution Permissions for Google SheetsGoogle 表格的 Apps 脚本执行权限
【发布时间】:2017-03-14 00:07:35
【问题描述】:

如何让具有“仅查看”权限的用户能够在电子表格中执行应用脚本?

我创建了一个由onOpen() 触发的自定义菜单选项,它可以为具有编辑权限的任何人启动脚本。但是,onOpen() 不适用于仅具有查看/评论权限(与文档一致)的任何人,因此不会创建菜单并且无法启动脚本。

理想情况下,我希望只查看用户来查看和执行脚本,而不是修改它。

【问题讨论】:

  • 关于“仅查看”您需要了解的第一件事是,如果您没有明确选中该框以防止查看器复制文件,那么您的代码就没有真正的安全性。查看者可以只复制文件,然后他们可以查看副本中的代码。因为您使用的是保留函数名称onOpen(),这是一个 simple 触发器而不是“已安装”触发器。但是,当文件处于“仅查看”模式时,即使是“已安装”触发器也不会运行。因此,如果您想阻止用户看到代码,则必须使用附加组件。您可以将其发布为不公开。
  • 我不介意他们是否查看代码。我想阻止他们修改它。
  • 您可以尝试一个“库”,它只是对另一个 Apps 脚本文件的引用。这将阻止人们查看或修改代码。它可能运行速度较慢,您仍然会遇到触发器未运行的问题。

标签: google-apps-script google-sheets


【解决方案1】:

如果执行脚本导致修改工作表的任何内容,那么我认为只有那些具有编辑权限的用户才能运行脚本是合理的。鉴于此,我不确定我是否完全理解这个问题。

【讨论】:

  • 我完全不同意@Vivekananda L Baindoor Rao。运行脚本的概念与编辑它有很大不同,工作表不同于在所有者帐户下运行的程序,它可以访问除工作表之外的所有东西。这个概念是很久以前用读取、修改、执行权限制定的。谷歌运行网络应用脚本的方法存在很大缺陷。我怀疑他们想要取消匿名用户,并且在他们看来,每个人都必须获得一个谷歌帐户。
【解决方案2】:

理想情况下,我希望只查看用户来查看和执行脚本,而不是修改它。

能够使用 SpreadsheetApp.getUi(如 onOpen 和 onEdit)的简单触发器和可安装触发器仅对具有编辑权限的用户执行。

您可以添加一个脚本链接,而不是使用自定义菜单,该脚本发布为允许任何人访问并运行的 Web 应用程序。该链接可以添加到单元格或图像中。

相关

答案得分 > 0 的主题

一个答案得分为 0 的主题

【讨论】:

    【解决方案3】:

    我只是在这上面花了几天时间,不相信你可以!为了让匿名用户执行网络应用程序谷歌应用程序脚本,您必须在应用程序脚本共享选项中将其设置为“互联网上任何拥有此链接的人都可以编辑”。另外,您必须使脚本触及的工作表可由任何人编辑。另外,您必须按照您的执行部署它,并且每个人都可以访问。

    不,先生,我不喜欢它。应用程序脚本应该是可执行的而不是可编辑的。谷歌的选择毫无意义,特别是考虑到他们与匿名用户共享内容有多么困难。你会认为他们会允许没有修改权限的执行权限。 (答案中是否允许发表意见?)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-25
      • 1970-01-01
      • 2022-07-13
      • 1970-01-01
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2013-10-10
      相关资源
      最近更新 更多