如何在Google App脚本中删除其他用户拥有的触发器?

时间:2019-06-08 15:05:43

标签: google-apps-script

我有一个应该安装一次的可安装触发器。但是我发现我的一些同事重新运行了我的代码,并重新创建了3个与之完全相同的触发器。我感到很傻,以至于我没有添加任何条件声明...

无论如何,现在我想删除这些额外的触发器。但是我在GAS项目的控制台UI上找不到删除/编辑按钮。而且我也尝试过ScriptApp.getProjectTriggers(),但它仍然列出了仅属于我的项目的触发器。

如何删除其他人(其他用户拥有)创建的这些额外触发器?还是可以从头开始重新启动项目?

1 个答案:

答案 0 :(得分:0)

除了@Alan Wells评论以外-不,您definitely cannot。不过,您可以做的是使您的用户使用如下代码代表他们运行卸妆功能(如果您的脚本是容器绑定的,则将其添加到onOpen()触发器中(如果您有)或其他任何功能您希望会被其他人呼叫)

function deleteAllTriggers() {

  var ts = ScriptApp.getProjectTriggers();

  ts.forEach(function(trigger){

    var handlerName = trigger.getHandlerFunction();

    if(handlerName === 'yourFunctionName') { //check if you are deleting target trigger;
      ScriptApp.deleteTrigger(trigger);
      Utilities.sleep(1000); //wait (in this sample 1s) to avoid "too many times" error;
    }

  });

}