首页 文章

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

提问于
浏览
2

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

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

任何指导将不胜感激 .

Further Details

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

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

3 回答

  • 2

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

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

  • 1

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

    • 以下函数用于记录Total Spent单元格的更新时间和日期 .

    function timestamp() { var d = new Date() return d.toLocaleTimeString(); }

    function datestamp() { return new Date() }

    • SPLIT()INT() 用于将日期和时间戳操作为可与当前日期和时间进行比较的可用格式 . datestamp() 函数总是在PST中给出日期,所以我必须添加适当的小时数来转换它 .

    • 一个 IF() 单元格检查日期是否为今天,另一个 IF() 单元格检查时间是否具有小于5分钟前的时间的值 .

    • 如果满足条件(今天编辑的总花费少于5分钟),则会向电子邮件单元格提供IFTTT电子邮件地址的值 . 如果没有,则单元格获得空间 .

    • 我的sendEmails脚本每5分钟由一个可安装的基于时间的触发器触发 . 如果满足条件,它将向有效地址发送电子邮件,如果不符合,则会发送空白电子邮件地址 .

  • 1

    一种解决方法可能如下:

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

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

相关问题