我有一张Google电子表格,IFTTT会在特定事件发生时添加一行。我想在每次添加一行时运行Google脚本。目前,该脚本已安装onEdit触发器,但除非我手动编辑电子表格,否则不会触发该脚本。
This thread和this thread描述了类似的问题,但我缺乏尝试他们提出的解决方案的知识。第一个建议使用webapp,第二个建议使用基于时间的触发器并检查电子表格中的更改。
非常感谢任何指导。
更多详情
通过IFTTT进入的每一行代表购买随机奖品。一列包含购买价格,另一列包含购买日期,另一列包含购买详细信息。当花费的总金额发生变化时,电子表格会获取一个随机数和与该数字相关的奖品。我希望在购买奖品时通过电子邮件将这些详细信息发送给我(更具体地说,我希望它们通过电子邮件发送到IFTTT,以便它可以向我发送详细信息)。电子邮件和电子邮件地址由电子表格单元格中的公式生成。脚本从电子表格中抓取电子邮件和地址并发送电子邮件。目前,手动编辑电子表格但未通过IFTTT日志条目成功触发电子邮件。
这个项目的大部分是通过电子表格中的公式而不是脚本来实现的,因为我更有信心使用它们。
答案 0 :(得分:2)
onEdit()触发器仅触发用户输入。
如果IFTTT发送form-info,您应该看看是否可以使用onFormSubmit?
答案 1 :(得分:1)
我可行但不整洁且不满意的解决方案如下。
function timestamp() {
var d = new Date()
return d.toLocaleTimeString();
}
function datestamp() {
return new Date()
}
SPLIT()
和INT()
用于将日期和时间戳操作为可用格式,可与当前日期和时间进行比较。 datestamp()
函数始终在PST中提供日期,因此我必须添加适当的小时数来进行转换。IF()
单元格检查日期是否为今天,另一个IF()
单元格检查时间是否小于5分钟前的时间。答案 2 :(得分:1)
一种解决方法可能如下:
您可以在此电子表格中创建一个脚本,并在scriptproperties中保存getLastRow()值。
通过定时触发器每分钟左右比较它们,当它增加时,做你的事情;)
答案 3 :(得分:0)
只需将触发器选择的事件类型更改为“ On Change”。每当您编辑脚本以及IFTTT添加该行时,它将运行脚本。