UPD:
我有一个已发布的应用程序,如Spreadsheets插件和一些电子表格,它们使用此插件并执行时间驱动的触发器:
ScriptApp.newTrigger("myFunction")
.timeBased()
.everyHours(1)
.create();
一切正常,但我有点困惑,这个触发器在什么范围内起作用?
由于这是一个已发布的插件,脚本是一个,时间驱动的功能也是一个,对吗?正如迭戈所说:“它适用于启动触发器的用户的用户范围”。好的,但电子表格呢?
我需要写(如果触发器只看到这个电子表格):
function myFunction(){
var ss = SpreadsheetApp.getActive();
}
或(如果它在没有绑定到特定电子表格的情况下运行):
function myFunction(){
var ss = SpreadsheetApp.openById('<some id>');
}
换句话说,当我设置触发器时,我是仅为当前文档还是为所有文档设置它?
谢谢!
答案 0 :(得分:1)
它适用于启动触发器的用户的用户范围。以下是您可以查看的方式:
i
并将其设置为零i
,将其写入工作表,递增i
并将其保存回属性。i
已经从零开始了,但是1分钟的触发器仍在迭代原始的i
值(因为不同的用户无法访问第一个用户的属性)。以下是代码:
function getAndPrintUserProperty() {
var userProperties = PropertiesService.getUserProperties();
var i = userProperties.getProperty("i");
i++;
SpreadsheetApp.getActive().getSheetByName("Sheet1").appendRow([i]);
userProperties.setProperty("i", i);
}
function addUserProperty() {
PropertiesService.getUserProperties().setProperty("i", 0);
}