我目前正在使用我的项目中的Google Apps脚本。但面对触发问题。 场景:Google Apps脚本触发器问题
两个用户 - 用户A - 用户B
登录作为用户A,创建一个谷歌电子表格和文字给它。还创建了一些触发器。对于例如
电子表格是共享与编辑权限的用户B。现在我以UserB身份登录。
案例1:尝试将新的触发脚本添加 结果=>触发器被创建,但只显示给用户B
案例2:修改现有的触发器(由用户A创建) 结果=>无法看到由UserA创建的触发器。即使修改操作没有任何错误发生。没有更改应用于该触发器。
案例3:删除现有触发器(由UserA创建) 结果=>看不到由UserA创建的触发器。即使删除运行没有发生任何错误。没有更改应用于该触发器。我仍然可以使用UseA登录来查看它。
我Qusetion:
1.Is有什么办法 - 修改由用户B这是由用户A创建触发器? - UserB添加新的触发器,UserA可见?
- Google应用程序脚本有任何功能可以更改上下文/会话吗?例如,尽管UserB已登录;将会话更改为UserA并执行整个操作(添加/修改/删除),然后再次更改回UseB会话?
下面是我的方法:
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]);
}
}
任何帮助将不胜感激。提前致谢。
感谢您的宝贵回应。我通过UserA以编程方式添加了触发器,但仍无法访问和修改UserB的触发器。 – Seuli