IFTTT

时间:2015-08-04 20:15:00

标签: javascript google-apps-script google-sheets triggers

我将IFTTT触发器设置为在向IFTTT发送短信时向电子表格添加一行。

我正在尝试编写电子表格Google Apps脚本,以便在电子表格中的其他工作表中添加相应的行。当IFTTT添加一行时它应该触发,但到目前为止,它仅在我手动更改电子表格中的某些内容时触发,而不是在IFTTT执行时触发。

我想要与this question基本相同的功能。我使用该答案中的Mogsdad代码制作了一个fakeEvent并将其交给onEdit()函数,但我仍然无法自动触发它。

当脚本进行更改时,是否有一些特殊的方法来实现onChange?

以下是相关代码:

function createChangeTrigger() {
  var sheet = SpreadsheetApp.getActive();
  ScriptApp.newTrigger("playCatchUp")
   .forSpreadsheet(sheet)
   .onChange()
   .create();
}

// Installable trigger to handle change or timed events
// Something may or may not have changed, but we won't know exactly what
function playCatchUp(e) {
  // Check why we've been called
  if (!e)
    Logger.log("playCatchUp called without Event");
  else {
    if (e.hasOwnProperty("changeType")) {
      Logger.log(e.changeType);
    }    
  }

  // Build a fake event to pass to onEdit()
  var fakeEvent = {};
  fakeEvent.source = SpreadsheetApp.getActiveSpreadsheet();
  var lastRow = fakeEvent.source.getActiveSheet().getLastRow();
  fakeEvent.range = fakeEvent.source.getActiveSheet().getRange(lastRow, 1, 1, 3);
  Logger.log(fakeEvent.range.getRow());
  changeIt(fakeEvent);
}

我在最后将onEdit()调用更改为changeIt(),以便我知道它是onChange触发器触发,而不是onEdit。我还拿出了同时发生的事情,因为我没有预料到任何事情。

就像我说的,这个脚本在我自己编辑工作表时效果很好,但在IFTTT更改后却没有。有任何想法吗?谢谢!

0 个答案:

没有答案