【问题标题】:Unable to delete triggers (google-apps-script)无法删除触发器(google-apps-script)
【发布时间】:2015-01-03 01:44:48
【问题描述】:

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

【问题讨论】:

  • 你能复制文件,重命名副本,然后开始使用该副本作为正式文件吗?在您知道新文件正在工作之前,我不会删除旧文件。
  • 没有要复制的文件。据我所知,我驱动器上的所有文件都没有触发器。这就是问题所在。我相信当另一个帐户被删除时,具有触发器的文件不再存在。这也是它们无法被删除的部分原因。
  • 检查 Apps 脚本问题跟踪器:Apps Script Issues,如果不存在,请添加新问题。

标签: google-apps-script triggers


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 不推荐使用仅链接的答案。
    【解决方案3】:

    您可以尝试了解有关脚本容器文档的更多信息。 您可以检查编辑 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.");
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 2016-02-13
      • 2013-09-21
      • 1970-01-01
      相关资源
      最近更新 更多