我想阅读Active电子表格并在此基础上添加菜单项。以下是OnOpen(e(触发器中的代码:
function onOpen(e) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
//add menus based on values of sheet
}
我得到以下异常:
[异常:您没有执行该操作的权限。]
我浏览了文档,发现OnOpen触发器中的AuthMode为None,不允许访问任何需要授权的服务。
请建议是否有其他方法来完成我的任务。
谢谢。
除非电子表格的所有者或编辑器使用该电子表格中的插件,否则无法访问该电子表格。正如官方文件中所写,
但是,由于编辑器加载项在打开文档时会自动运行其onOpen(e(函数来添加菜单项,因此上述行为会给Apps Script的授权规则增加一些复杂性。毕竟,用户每次打开文档时都会对访问个人数据的附加组件感到不舒服。
需要为文档启用加载项,加载项才能访问文档。启用后,onOpen()
在AuthMode.LIMITED
中运行,您可以在其中访问绑定文档。这个";启用";状态是由引起的
在使用该文档时从商店获取加载项,或者使用该文档中以前安装的附加组件
在所有其他情况下,请在AuthMode.NONE
中添加运行。在此模式下,您只能添加菜单项,而不能访问任何数据,包括绑定的电子表格。添加菜单项以请求访问此类数据。然后,在获得AuthMode.FULL
之后,可以完成工作流的其余部分。
参考文献:
- 完整的生命周期