【问题标题】:When Google document is copied with container-bound script, how to get its installable triggers?使用容器绑定脚本复制 Google 文档时,如何获取其可安装触发器?
【发布时间】:2019-03-25 23:29:36
【问题描述】:

问题

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

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

条件:

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

我的想法:

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

插件尝试了在作为插件测试中不允许的操作 模式。要使用此操作,您必须部署插件。

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

我不介意作为插件发布,但 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


【解决方案1】:

我想出了部分答案:

我认为不可能复制文档及其触发器,但我没有找到任何官方文档。

但是错误:

插件尝试了在作为插件测试中不允许的操作 模式。要使用此操作,您必须部署插件。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多