SpreadsheetApp.getActive() 在 Google Sheets 插件的 onOpen 触发器中失败
SpreadsheetApp.getActive() fails in onOpen trigger in Google Sheets addon
我想阅读活动电子表格并根据它添加菜单项。下面是 OnOpen(e) 触发器中的代码:
function onOpen(e) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
//add menus based on values of sheet
}
我遇到以下异常:
[Exception: You do not have permission to perform that action.]
我查看了 documentation 并发现 OnOpen 触发器中的 AuthMode 是 None,它不允许访问任何需要授权的服务。
如果有任何其他方法可以完成我的任务,请提出建议。
谢谢。
除非电子表格的所有者或编辑者使用该电子表格中的 add-on,否则无法访问该电子表格。如 the official document、
中所写
However, because an editor add-on automatically runs its onOpen(e) function to add menu items when a document opens, the behavior above adds some complexity to Apps Script's authorization rules. After all, users wouldn't be comfortable with an add-on accessing personal data every time they open a document.
需要为文档启用 add-on 插件才能访问文档。启用后,onOpen()
在 AuthMode.LIMITED
中运行,您可以在其中访问绑定的文档。这种“启用”状态是由
引起的
Getting an add-on from the store while using that document, or
Using a previously installed add-on in that document
在所有其他情况下,在 AuthMode.NONE
中添加运行。在此模式下,您只能添加菜单项而无法访问任何数据,包括绑定的电子表格。添加菜单项以请求访问此类数据。然后,得到AuthMode.FULL
之后,就可以完成剩下的工作流程了。
参考文献:
我想阅读活动电子表格并根据它添加菜单项。下面是 OnOpen(e) 触发器中的代码:
function onOpen(e) {
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
//add menus based on values of sheet
}
我遇到以下异常:
[Exception: You do not have permission to perform that action.]
我查看了 documentation 并发现 OnOpen 触发器中的 AuthMode 是 None,它不允许访问任何需要授权的服务。
如果有任何其他方法可以完成我的任务,请提出建议。
谢谢。
除非电子表格的所有者或编辑者使用该电子表格中的 add-on,否则无法访问该电子表格。如 the official document、
中所写However, because an editor add-on automatically runs its onOpen(e) function to add menu items when a document opens, the behavior above adds some complexity to Apps Script's authorization rules. After all, users wouldn't be comfortable with an add-on accessing personal data every time they open a document.
需要为文档启用 add-on 插件才能访问文档。启用后,onOpen()
在 AuthMode.LIMITED
中运行,您可以在其中访问绑定的文档。这种“启用”状态是由
Getting an add-on from the store while using that document, or Using a previously installed add-on in that document
在所有其他情况下,在 AuthMode.NONE
中添加运行。在此模式下,您只能添加菜单项而无法访问任何数据,包括绑定的电子表格。添加菜单项以请求访问此类数据。然后,得到AuthMode.FULL
之后,就可以完成剩下的工作流程了。