Javascript 是否可以在没有活动电子表格的情况下,每天使用时间驱动触发器运行函数?
我有一个功能,可以在被调用时更新单元格并发送电子邮件。我希望每天都运行它,而不必打开电子表格(使用Javascript 是否可以在没有活动电子表格的情况下,每天使用时间驱动触发器运行函数?,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我有一个功能,可以在被调用时更新单元格并发送电子邮件。我希望每天都运行它,而不必打开电子表格(使用getActiveSpreadsheet()方法) 所以我尝试使用服务器端方法openById()调用它。但当电子表格未打开时,该函数不会启动 有没有办法在电子表格关闭的情况下运行它 代码如下: function updateNote() { var ss = SpreadsheetApp.openById("MySpreadsheetID"); //do things };` function
getActiveSpreadsheet()
方法)
所以我尝试使用服务器端方法openById()
调用它。但当电子表格未打开时,该函数不会启动
有没有办法在电子表格关闭的情况下运行它
代码如下:
function updateNote() {
var ss = SpreadsheetApp.openById("MySpreadsheetID");
//do things
};`
function createTimeDrivenTriggers() {
// Trigger fonction everyday at 10.35am
ScriptApp.newTrigger('updateNote')
.timeBased()
.atHour(10)
.nearMinute(35)
.everyDays(1)
.create();
};
答复:
您可以创建一个可安装的触发器,每天运行,而无需打开电子表格
细节:
使用基于时间的可安装触发器,您可以让您的功能每天运行,但按照以下步骤:
时间可能会稍微随机化—例如,如果您创建一个重复出现的上午9点触发器,则应用程序脚本会选择上午9点到上午10点之间的时间,然后每天保持该时间一致,以便在触发器再次触发之前经过24小时
如果这对您来说不是问题,那么您可以在项目的应用程序脚本编辑器中执行此操作-按照路径Edit>Current project's triggers
,该路径将在新选项卡中打开项目的触发器页面
在左下角,单击+添加触发器
按钮,调出添加触发器
模式-使用以下属性:
- 选择要运行的功能:
updateNote()
- 选择应运行的部署:
Head
- 选择事件源:
时间驱动
- 选择基于时间的触发器类型:
daytimer
- 选择一天中的时间:
10am到11am
- 选择要运行的功能:
createTimeDrivenTriggers()
- 选择应运行的部署:
Head
- 选择事件源:
时间驱动
- 选择基于时间的触发器类型:
daytimer
- 选择一天中的时间:
9am和10am