当 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 webhooks 到 google 表格的 Webflow
Zapier CLI:当依赖字段更改时,如何清除输入字段的值?
使用 Zapier Poll URL 到 Google 表格解析数据时遇到问题