Как удалить триггеры, принадлежащие другим пользователям, в скрипте Google App? - PullRequest
0 голосов
/ 08 июня 2019

У меня есть устанавливаемый триггер, который должен быть создан один раз.Но я обнаружил, что некоторые из моих коллег повторно запустили мой код и воссоздали еще три триггера, которые точно так же с ним.Я чувствовал себя настолько глупо, что не добавил никаких условных выражений этого ...

В любом случае, теперь я хочу удалить эти дополнительные триггеры.Но я не могу найти кнопку удаления / редактирования в пользовательском интерфейсе консоли проекта GAS.И я также попробовал ScriptApp.getProjectTriggers(), но в нем все еще перечислены триггеры проекта, которые принадлежат только мне.

Как я могу удалить эти дополнительные триггеры, созданные другими пользователями (принадлежащими другим пользователям)?Или я могу перезапустить свой проект с нуля?

1 Ответ

0 голосов
/ 08 июня 2019

В дополнение к комментарию @Alan Wells - нет, вы определенно не можете . Однако вы можете сделать так, чтобы ваши пользователи запускали функцию удаления от своего имени с чем-то вроде этого (если ваш скрипт связан с контейнером, добавьте его к триггеру 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;
    }

  });

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...