当 Zapier 添加一行时,Google Apps 脚本 onEdit 触发器未触发 [重复]

Posted

技术标签:

【中文标题】当 Zapier 添加一行时,Google Apps 脚本 onEdit 触发器未触发 [重复]【英文标题】:Google Apps Script onEdit Trigger Not Firing When Zapier Adds A Row [duplicate] 【发布时间】:2019-04-04 15:28:36 【问题描述】:

我遇到了一个问题,即我的 Google 应用脚本触发器未正确触发。我的谷歌电子表格有两张。一个保存库存,另一个跟踪订单数量。我与 Zapier 建立了联系,因此当下达新订单时,它会在“订单”表中添加一个新行。我希望我的主要功能在下订单并将新行添加到“订单”表时运行。目前,如果我进入工作表并手动编辑信息,它将触发,但当 Zapier 自动添加一行时它不会触发。

代码如下:

function onEdit(e) 
    var activeSheet = e.source.getActiveSheet();
    var range = e.range;
    if (activeSheet.getName() !== 'Orders') return;
    var productOrdered = orderID();
    var amountOrdered = orderQuantity();
    var productList = productArrayFunction();
    var productMatched = findMatchingProductId(productList,productOrdered);
    var rowNumber = lookup(productOrdered);
    var subtractInventory = subract(rowNumber,amountOrdered);

我可能会以错误的方式进行此操作,但我觉得这应该按预期工作。我不是编码专家,因此非常感谢任何指导。

【问题讨论】:

那么,Zapier创建新行后有什么方法可以运行该函数吗? 【参考方案1】:

Zapier 利用 Google Sheets API 来更新您的 google sheet。然而 onEdit 事件需要用户直接与工作表交互;这意味着它不会检测到 API 所做的更新。

我假设您使用 Zapier 作为第三方 API/服务和 Google 表格之间的中介。您可能可以使用 Google Apps 脚本直接连接到该 API/服务。这将使您能够更好地控制数据如何流向工作表以及脚本如何管理和/或对任何更改做出反应(您甚至可以取消 Zapier 订阅)。

【讨论】:

This 建议无论如何都会触发 onChange。【参考方案2】:

正如 Dimu Designs 所述,您不能在 API 交互中使用简单的触发器。 参考:https://developers.google.com/apps-script/guides/triggers/

但是,您可以将函数作为 Zapier 中多步函数的下一步运行。 参考:https://zapier.com/help/code/#how-get-started-code-zapier

所以,明确地说,我回答你的问题;我只是建议一个解决方案。

【讨论】:

以上是关于当 Zapier 添加一行时,Google Apps 脚本 onEdit 触发器未触发 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Zapier 更新 Google 表格中的多行?

使用 Zapier webhooks 到 google 表格的 Webflow

Zapier CLI:当依赖字段更改时,如何清除输入字段的值?

使用 Zapier Poll URL 到 Google 表格解析数据时遇到问题

Zapier 在尝试将 google 表格与 slack 集成时不显示任何数据

在不提交表单的情况下触发 Google 脚本