IFFT填充的Google电子表格日志不会触发onEdit脚本

时间:2014-11-16 05:26:09

标签: google-apps-script google-sheets

我有一张Google电子表格,IFTTT会在特定事件发生时添加一行。我想在每次添加一行时运行Google脚本。目前,该脚本已安装onEdit触发器,但除非我手动编辑电子表格,否则不会触发该脚本。

This threadthis thread描述了类似的问题,但我缺乏尝试他们提出的解决方案的知识。第一个建议使用webapp,第二个建议使用基于时间的触发器并检查电子表格中的更改。

非常感谢任何指导。

更多详情

通过IFTTT进入的每一行代表购买随机奖品。一列包含购买价格,另一列包含购买日期,另一列包含购买详细信息。当花费的总金额发生变化时,电子表格会获取一个随机数和与该数字相关的奖品。我希望在购买奖品时通过电子邮件将这些详细信息发送给我(更具体地说,我希望它们通过电子邮件发送到IFTTT,以便它可以向我发送详细信息)。电子邮件和电子邮件地址由电子表格单元格中的公式生成。脚本从电子表格中抓取电子邮件和地址并发送电子邮件。目前,手动编辑电子表格但未通过IFTTT日志条目成功触发电子邮件。

这个项目的大部分是通过电子表格中的公式而不是脚本来实现的,因为我更有信心使用它们。

4 个答案:

答案 0 :(得分:2)

onEdit()触发器仅触发用户输入。

如果IFTTT发送form-info,您应该看看是否可以使用onFormSubmit?

答案 1 :(得分:1)

我可行但不整洁且不满意的解决方案如下。

  1. 以下函数用于记录Total Spent单元格的更新时间和日期。
  2. function timestamp() { var d = new Date() return d.toLocaleTimeString(); }

    function datestamp() { return new Date() }

    1. SPLIT()INT()用于将日期和时间戳操作为可用格式,可与当前日期和时间进行比较。 datestamp()函数始终在PST中提供日期,因此我必须添加适当的小时数来进行转换。
    2. 一个IF()单元格检查日期是否为今天,另一个IF()单元格检查时间是否小于5分钟前的时间。
    3. 如果满足条件(今天编辑总花费且不到5分钟),则会向电子邮件单元格提供IFTTT电子邮件地址的值。如果没有,则单元格会占用空间。
    4. 我的sendEmails脚本每5分钟由一个可安装的基于时间的触发器触发。如果满足条件,它将向有效地址发送电子邮件,如果不满足,则会发送空白电子邮件地址。

答案 2 :(得分:1)

一种解决方法可能如下:

您可以在此电子表格中创建一个脚本,并在scriptproperties中保存getLastRow()值。

通过定时触发器每分钟左右比较它们,当它增加时,做你的事情;)

答案 3 :(得分:0)

只需将触发器选择的事件类型更改为“ On Change”。每当您编辑脚本以及IFTTT添加该行时,它将运行脚本。

相关问题