我目前正在项目中使用Google Apps Scripts。但面临触发器的问题。 场景:
两个用户 - UserA - UserB
以UserA身份登录,为其创建了Google电子表格和脚本。还创建了一些触发器。例如,
电子表格与UserB共享,具有编辑权限。现在我以UserB身份登录。
案例1:尝试向脚本添加新触发器 结果=>触发器已创建,但仅对UserB
可见案例2:修改现有触发器(由UserA创建) 结果=>无法看到UserA创建的触发器。即使修改opreration没有任何错误发生。没有对该触发器进行任何更改。
案例3:删除现有触发器(由UserA创建) 结果=>无法看到UserA创建的触发器。即使删除操作发生没有任何错误。没有对该触发器应用任何更改。我仍然可以通过UseA登录看到它。
我的问题:
1.有没有办法 - 由UserA创建的UserB修改触发器? - UserB添加一个新触发器,对UserA可见吗?
以下是我的方法:
function createTimeDrivenTriggers() {
ScriptApp.newTrigger("assignEditUrls")
.timeBased()
.atHour(0)
.nearMinute(59)
.everyDays(1)
.create();
ScriptApp.newTrigger('processInputXML')
.timeBased()
.everyMinutes(5)
.create();
ScriptApp.newTrigger('assignFormResponseIDs')
.timeBased()
.everyMinutes(30)
.create();
ScriptApp.newTrigger('setSRHistoryColumn')
.timeBased()
.everyMinutes(1)
.create();
}
function createSpreadSheetTriggers() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
ScriptApp.newTrigger("onOpen")
.forSpreadsheet(sheet)
.onOpen()
.create();
ScriptApp.newTrigger("sendEmailNotificationsOnFormSubmit")
.forSpreadsheet(sheet)
.onFormSubmit()
.create();
ScriptApp.newTrigger("notifyProductAssigneeOnFormSubmit")
.forSpreadsheet(sheet)
.onFormSubmit()
.create();
}
function deleteTrigger() {
// Loop over all triggers.
var allTriggers = ScriptApp.getProjectTriggers();
for (var i = 0; i < allTriggers.length; i++) {
ScriptApp.deleteTrigger(allTriggers[i]);
}
}
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:1)
您无法访问由编辑了电子表格或Google应用脚本访问权限的其他人创建的手动触发器。
From Google App script documentation
当您在项目上进行协作时,您可以使用任何可安装的触发器 创建不会与有权访问您项目的人共享。如果 您需要为所有协作者设置一致的触发器设置 可以使用脚本服务在运行时以编程方式创建触发器 时间。
如文档中所述,您可以通过编程方式安排触发器。