【发布时间】: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!你有没有发现任何有用的东西?