【问题标题】:Google Apps Script Custom Sheets Menu Not Showing for Other Users When Sheet is Shared共享工作表时,其他用户不显示 Google Apps 脚本自定义工作表菜单
【发布时间】:2020-12-11 22:11:47
【问题描述】:

我在 Google Apps 脚本编辑器中创建了一些基本的自定义菜单:

// Script has a library added under Resources -> Libraries -> [library1]  
function onOpen() {
      var ui = SpreadsheetApp.getUi();
      ui.createMenu('MyMenu').addItem('Refresh Data', 'refresh_the_data').addToUi();
    }

function refresh_the_data(){
  library1.refresh();
}

菜单为我(开发人员)显示,但在我与其他用户共享工作表时不显示。

onOpen() 函数在“refresh_the_data”函数中使用了一个外部库。以其他用户身份运行 onOpen() 时,我收到错误消息“您无权访问脚本使用的库 library1,或者它已被删除。”

所以我可以与所有需要访问此脚本的用户共享“library1”。有没有更好的方法与插件或应用程序共享脚本功能?理想情况下,我希望将库保持私有(不公开库的完整代码),尽管我知道如果我希望其他用户使用该功能,我必须公开代码。

【问题讨论】:

  • 我认为,当您的脚本被放到电子表格的脚本编辑器中并作为编辑器与其他用户共享电子表格时,当用户打开电子表格时,会创建自定义菜单。那么我可以问你关于复制你的问题的详细流程吗?借此,我想确认一下。
  • @Tanaike 我有一个菜单脚本使用的外部库。这就是问题所在。该库使用另一个“library2”。所以我必须与其他用户共享 1) 工作表、2) Library1、3) Library2。这行得通,但是我应该有更有效的方法吗?
  • 感谢您的回复。如果可以共享库,我认为共享它是合适的。如果你不想共享库,如果库的脚本没有使用与 UI 相关的方法,那么使用 Web Apps 运行脚本怎么样?这样,库的脚本可以在不共享的情况下使用。但我不确定你期望的方向。对此我深表歉意。
  • 你好 Womprat!你有没有发现任何有用的东西?

标签: google-apps-script


【解决方案1】:

如果您授予库用户查看级别访问权限,则只有可枚举的全局属性对库用户可见。此外,您可以通过以下划线结尾来选择哪些方法对您的用户不可见/不可用(例如myFunction_())。有关如何将某些方法和变量设置为私有的更多信息,请查看documentation's best practises

此外,您还可以在库 A 和 B 之间以及库 A 和您的脚本之间调整 resource scoping。通过这种方式,您可以在 A 使用它的 A 和 B 之间共享资源,而无需授予您的用户对库 B 的读取级别访问权限。

【讨论】:

  • 如何提供对库的视图级访问?
  • 这对我有用。我的脚本附有一个库。我去了图书馆,将用户添加为共享设置中的编辑器。用户刷新,自定义菜单项显示给用户。
  • @Khatri 去图书馆,在右上角你应该可以看到一个分享图标。与具有查看访问权限的所需用户共享库。
  • 查看者权限对我不起作用,仅供参考,只有编辑者权限起作用。
猜你喜欢
  • 2021-06-13
  • 2017-11-24
  • 1970-01-01
  • 2018-05-05
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2021-06-24
相关资源
最近更新 更多