Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 获取所有Google脚本触发器并删除它们_Google Apps Script_Gs Installable Triggers - Fatal编程技术网

Google apps script 获取所有Google脚本触发器并删除它们

Google apps script 获取所有Google脚本触发器并删除它们,google-apps-script,gs-installable-triggers,Google Apps Script,Gs Installable Triggers,是否有一种方法可以从Google脚本中的所有文档中获取(并更改/删除)所有触发器,就像我打开了脚本编辑器->编辑->所有触发器一样 更新: 我添加了一些测试触发器,并尝试循环所有电子表格文件,如所述: 函数getAllSpreadsheetTriggers() { var files=DriveApp.getFilesByType('application/vnd.google apps.spreadsheet'), 电子表格=[], 触发器=[]; while(files.hasNext())

是否有一种方法可以从Google脚本中的所有文档中获取(并更改/删除)所有触发器,就像我打开了
脚本编辑器->编辑->所有触发器一样

更新:

我添加了一些测试触发器,并尝试循环所有电子表格文件,如所述:

函数getAllSpreadsheetTriggers() { var files=DriveApp.getFilesByType('application/vnd.google apps.spreadsheet'), 电子表格=[], 触发器=[]; while(files.hasNext()) spreadsheets.push(SpreadsheetApp.openById(files.next().getId()); 对于(变量i=0;i
但是
.getUserTriggers()
总是返回一个空数组。我读到,最后一个答案是“我们决定不对这个问题采取行动。触发器总是属于某个特定的脚本,其他脚本无法访问。文档已经澄清了这一点。”


结果是不能完成吗?

您可以使用、和方法从文档/表单/电子表格中获取触发器,但它将仅返回指定文件的触发器。因此,如果要修改所有驱动器文件中的触发器,则需要循环所有文件

此外,您不能通过代码修改触发器,但可以删除触发器()并创建一个新的触发器(请参阅)

编辑: 就这点而言,您无法从正在运行的另一个脚本中获取触发器。我应该更仔细地阅读文档:

获取给定域中此用户拥有的所有可安装触发器 文档,仅用于此脚本或加载项无法使用此方法 查看附加到其他脚本的触发器。


所以,回答最初的问题,不,你不能。您可以为每个脚本编写一些代码,但它需要手动触发。

您知道,除了Pierre-Marie Richard的响应之外,您只能删除您在文档上创建的触发器,无法删除其他用户创建的触发器。任何具有编辑权限的用户都可以在文档上创建触发器,但该触发器只能由该用户操作

请你评论一下我最新的问题好吗?非常感谢。
function getAllSpreadsheetTriggers()
{
    var files = DriveApp.getFilesByType('application/vnd.google-apps.spreadsheet'),
        spreadsheets = [],
        triggers     = [];

    while(files.hasNext())
        spreadsheets.push( SpreadsheetApp.openById(files.next().getId()) );

    for (var i = 0; i < spreadsheets.length; i++)
    {
        triggers = ScriptApp.getUserTriggers( spreadsheets[i] );
        Logger.log(triggers);
    }
}