我为一个人写了一些GAS代码,它需要一个触发器。
我创建了这一行,并要求该人调用它以设置触发器(因为这是他的电子表格):
ScriptApp.newTrigger("myFunction").timeBased().everyDays(1).inTimezone("Australia/Brisbane").atHour(5).create()
但是,我看不到他的扳机。
要查看我是否使用了触发器,
Logger.log(ScriptApp.getProjectTriggers())
它返回了一个空数组,所以看起来触发器已经消失了,但是我在物理上看不到它...
因此,如果是客户,询问他的“请设置您的触发器”然后看不到它,然后要求检查它是否存在是不明智的。
为客户设置和管理触发器的最佳方法是什么?
答案 0 :(得分:2)
编辑:如接受的答案所述,似乎可以在dashboard中手动查看其他用户的触发器。
出于安全原因,您无法以编程方式/手动方式查看其他用户的触发器。
我创建了这一行,并要求该人调用它以设置触发器(因为这是他的电子表格):
您必须显式创建一个菜单,以便用户可以单击它来创建触发器:
如果用户通过菜单选项设置触发器,则可以将触发器的ID设置为属性服务,如下所示。
function createTrigger(){ //to be linked to a "Create Trigger" menu
// Creates an edit trigger for a spreadsheet identified by ID.
var tid = ScriptApp.newTrigger('myFunion')
.forSpreadsheet('1234567890abcdefghijklmnopqc3')
.onEdit()
.create()
.getUniqueId();
//set id of trigger in properties
PropertiesService
.getScriptProperties() //if you want public access to trigger(If not use getUserProperties)
.setProperty(
Session.getEffectiveUser().getEmail() ||
('user1 ' + Math.random().toFixed(3)),
tid
);
//Inform user: trigger created successfully.
SpreadsheetApp.getActive().toast('Trigger created successfully with id: ' + tid);
//@see https://script.google.com/home/triggers
}
答案 1 :(得分:2)
要查看他的触发器,请打开编辑器,然后从“编辑”菜单中选择“当前项目触发器”。
在触发器页面上,单击“我拥有的”过滤器上的“ x”。然后,您可以查看该项目的所有触发器,并知道它是否已设置。我不认为它不会告诉您拥有它的人。
您不能从那里“管理”他的触发器,而只能看到它们。没有办法与其他人的触发器搞混(这是一个颇受争议的话题!),但是您可以更改函数名称以破坏触发器。