无法删除触发器(google-apps-script)

时间:2015-01-03 01:44:49

标签: google-apps-script triggers

我似乎有触发器无法在我的Google Apps脚本中删除。我有一个理论,为什么我不能删除它们,但不知道如何解决问题。这些触发器附加到绑定到与我共享的单独Google帐户上的文件的脚本中。我当然能够编辑和修改脚本,例如在共享文件时我想要的。从那时起,虽然与我共享文件的Google帐户已被删除,但我认为“冻结”的触发器是来自该帐户的那些文件的残留物。有关如何解决此问题的任何建议吗?

A screen grab of my "frozen" triggers"

3 个答案:

答案 0 :(得分:2)

无法从该窗口中删除简单触发器: See Here

而是将此功能添加到您的脚本并运行它:

function deleteTriggers() {
  var allTriggers = ScriptApp.getProjectTriggers();
  for (var i = 0; i < allTriggers.length; i++) {
    ScriptApp.deleteTrigger(allTriggers[i]);
  }
}

答案 1 :(得分:0)

您是否曾尝试访问自己的Google帐户,然后选择“帐户设置”,然后选择“帐户权限”。您应该被定向到具有每个权限(应用程序和脚本)的列表。你或许可以在那里找到它。

https://security.google.com/settings/security/permissions?pli=1

答案 2 :(得分:-1)

您可以尝试了解有关脚本容器文档的更多信息。 您可以检查编辑URL和用户。 如果文档未绑定到容器,则可以从菜单访问共享信息。 如果您是最后一个使用该脚本的人,您还可以复制脚本并删除原始脚本 - 手动或作为文档。但要注意脚本属性之类的依赖关系。

我写了一个简短的循环来记录有关容器Url及其查看器的信息:

function containerFinder() {
  if (DocumentApp.getActiveDocument()) { 
    var document = DocumentApp.getActiveDocument();
    var editUrl = document.getUrl();
    var editors = document.getViewers();
    Logger.log("This Script belongs to a document.");
    Logger.log("Edit Url: " + editUrl);
    Logger.log("Editors: " + editors);
  }
  else if (SpreadsheetApp.getActiveSpreadsheet()){
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
    var editUrl = spreadsheet.getUrl();
    var editors = spreadsheet.getEditors();
    Logger.log("This Script belongs to a spreadsheet.");
    Logger.log("Edit Url: " + editUrl);
    Logger.log("Editors: " + editors);
  }
  else if (FormApp.getActiveForm()){
    var form = FormApp.getActiveForm();
    var editUrl = form.getEditUrl();
    var editors = form.getEditors();
    Logger.log("This Script belongs to a form.");
    Logger.log("Edit Url: " + editUrl);
    Logger.log("Editors: " + editors);
  }
  else {
    Logger.log("This Script does not seem to belong to any container.");
  }
}