【发布时间】:2019-03-25 23:29:36
【问题描述】:
问题
我的文档中附加了一个容器绑定脚本。
它有onOpen 可安装触发器,我需要在新创建的文档中获取脚本。
我发现最有效的方法是通过从原始文档复制来创建新文档。
The problem is, that the triggers are not copied with it.
条件:
- 简单的触发器是不够的,我需要使用需要授权的操作
- 我不想强迫我的用户为每个文档手动创建触发器
- 我不介意是否在单击以编程方式创建的菜单中的按钮后创建可安装触发器
我的想法:
我想以编程方式创建它——测试环境有问题。我收到一个错误:
插件尝试了在作为插件测试中不允许的操作 模式。要使用此操作,您必须部署插件。
据我了解,我需要将项目发布到商店才能使用它,我不想这样做。
我不介意作为插件发布,但 google 脚本 IDE 只提供作为 web Docs web 插件发布。
代码:
function onOpen(e){
DocumentApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
.createMenu('Custom menu')
.addItem('Open sidebar automatically', 'createTrigger')
.addToUi();
}
function createTrigger() {
var doc = DocumentApp.getActiveDocument();
ScriptApp.newTrigger('onOpenReal')
.forDocument(doc)
.onOpen()
.create();
}
function onOpenReal(e){
...something requiring authorization...
}
【问题讨论】:
-
如果您的意思是不通过“测试为插件”按钮进行测试,而是以普通用户身份打开文档,那么错误是一样的。
-
我发现了问题!多亏了你的第一条评论。我需要先删除“作为附加组件测试”选项中的所有测试配置。在此之前,即使以普通用户身份打开,系统也会将所有启动都视为“测试”。这个问题仍然有效,因为这个解决方案比触发器与文档一起复制更糟糕,但如果没有更好的结果出现,我会回答自己。非常感谢!
标签: google-apps-script web-applications triggers google-docs