如何发布包含触发器的脚本?

时间:2013-09-20 14:06:23

标签: google-apps-script

我发布了一个带有“onFormSubmit”触发器的脚本到画廊。

当用户安装脚本时,未安装触发器,用户必须自己完成添加触发器的过程。 我做错了什么或是出于目的吗?

1 个答案:

答案 0 :(得分:1)

这是正常行为,副本没有随之复制的触发器,但GAS提供了对触发器创建的完全访问权。

你没有提到你使用的那种脚本,但这里是一个电子表格绑定脚本的例子,它以一种非常用户友好的方式处理安装过程,其中一个菜单在设置触发器时发生变化或者没有提供安装任何用户都应该能够理解的例程。

随意适应您的使用案例。

function onOpen() {
  var installMenu = [ {name: "Install triggers", functionName: "setTrigger"}
                    ];
  var normalMenu = [ {name: "do something", functionName: "doIt"}
                    ];
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  if(!UserProperties.getProperty('triggers')){
    sheet.addMenu("Custom menu",installMenu);
  }else{
    sheet.addMenu("Custom menu",normalMenu);
  }
}

function setTrigger(){
  var trig = ScriptApp.newTrigger('onFormSubmit').forSpreadsheet('0AnqSFd3iikE3dG5CQzdpV2tyMzRvdlY1RlVOUDc5RHc').onFormSubmit().create();
  UserProperties.setProperty('triggers',trig.getUniqueId());
  Browser.msgBox('Please refresh your Browser');
}

function onFormSubmit(){
  //do something
}

function doIt(){
  //
}