我将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更改后却没有。有任何想法吗?谢谢!