使用容器绑定脚本复制Google文档时,如何获取其可安装触发器?

时间:2018-10-21 21:25:29

标签: google-apps-script web-applications triggers google-docs

问题

我在文档中附加了一个容器绑定的脚本。 它具有onOpen可安装的触发器,我需要在新创建的文档中获取脚本。 我发现最有效的方法是通过从原始文档进行复制来创建新文档。

The problem is, that the triggers are not copied with it.

条件:

  1. 简单的触发器还不够,我需要使用需要授权的操作
  2. 我不想强迫我的用户为每个文档手动创建触发器
  3. 我不介意是否在从以编程方式创建的菜单中单击按钮之后创建了可安装触发器

我的想法:

我想以编程方式创建它-测试环境有问题。我收到一个错误:

  

该附件尝试了Test中不允许作为附件的操作   模式。要使用此操作,必须部署附件。

据我了解,我需要将项目发布到商店才能使用,而我不想这样做。

我不介意以附件的形式发布,但google脚本IDE仅提供以Web Docs网络附件的形式发布。

代码:

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...
}

1 个答案:

答案 0 :(得分:1)

我部分地找到了答案:

我认为不可能将文档及其触发器复制到一起,但是我没有找到任何与此相关的正式文档。

但是错误:

  

该附件尝试了Test中不允许作为附件的操作   模式。要使用此操作,必须部署附件。

在看似正常的环境中是由Google Apps脚本编辑器中保存的测试配置引起的。

要摆脱此错误,您需要首先删除“作为附件测试”选项中的所有测试配置。在此之前,即使以普通用户身份打开,系统也将所有启动视为“测试”。