Javascript 当IFTTT编辑电子表格时,onChange不触发
我有一个IFTTT触发器集,用于在向IFTTT发送短信时向电子表格添加一行 我正在尝试编写一个电子表格GoogleApps脚本,将相应的行添加到电子表格中的其他工作表中。它应该在IFTTT添加行时触发,但到目前为止,它只在我手动更改电子表格中的某些内容时触发,而不是在IFTTT执行此操作时触发 我想要基本上与相同的功能。我使用该答案中的Mogsdad代码生成fakeEvent并将其交给onEdit()函数,但我仍然无法让它自动启动 当所讨论的更改将由脚本进行时,是否有一些特殊的方法来实现onChange 以下是相关代码: 最后我将onEdit()调用更改为changeIt(),这样我就知道是onChange触发器触发的,而不是onEdit。我还拿出了处理同时发生的事件的东西,因为我没有预料到任何事情Javascript 当IFTTT编辑电子表格时,onChange不触发,javascript,google-apps-script,google-sheets,triggers,Javascript,Google Apps Script,Google Sheets,Triggers,我有一个IFTTT触发器集,用于在向IFTTT发送短信时向电子表格添加一行 我正在尝试编写一个电子表格GoogleApps脚本,将相应的行添加到电子表格中的其他工作表中。它应该在IFTTT添加行时触发,但到目前为止,它只在我手动更改电子表格中的某些内容时触发,而不是在IFTTT执行此操作时触发 我想要基本上与相同的功能。我使用该答案中的Mogsdad代码生成fakeEvent并将其交给onEdit()函数,但我仍然无法让它自动启动 当所讨论的更改将由脚本进行时,是否有一些特殊的方法来实现onCh
正如我所说,这个脚本在自己编辑工作表时非常有效,但在IFTTT更改之后就不行了。有什么想法吗?谢谢 不幸的是,onChange和onEdit仅在从web sheeta版本(而不是从api或移动应用程序)进行更改时才被调用。othwr问题涉及如何以其他方式检测变化(我最近回答了一个问题,请参阅我的个人资料答案)啊,我希望情况并非如此。哦,好吧。我在一个类似的问题上看到了你的1分钟间隔触发想法,所以我将使用它。谢谢
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);
}