如何限制GAS中的可安装触发器?

时间:2014-12-15 17:16:56

标签: google-apps-script google-sheets

我们使用此代码将notify()设置为电子表格onEdit触发器功能:

var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger("notify").forSpreadsheet(ss).onEdit().create();

上面的触发器notify()会在电子表格更新时通过邮件通知用户,但问题是它会向用户发送电子邮件以进行每次编辑。如何克服这个问题,即使有多处更改也要发送一个通知?

1 个答案:

答案 0 :(得分:1)

您可以通过记住您已通知用户并停止进一步通知(一段时间)来实现目标。例如,此功能使用Properties Service跟踪通知,每天只发送一次:

function notify(e) {
  // Get the date we last notified user
  var properties = PropertiesService.getUserProperties();
  var lastNotifyDate = properties.getProperty("lastNotified");

  // Get today's date
  var today = new Date().toDateString();

  // Should we send a notification to user?
  if (!lastNotifyDate || lastNotifyDate !== today) {

    // --- Place notification code here --- //

    // Notify user just once per day; remember we've sent a notification already
    properties.setProperty("lastNotified",today);
  }
}