按下单元格中的按钮时从 Google 表格触发 webhook
Posted
技术标签:
【中文标题】按下单元格中的按钮时从 Google 表格触发 webhook【英文标题】:Trigger webhook from Google Sheets when button in cell pressed 【发布时间】:2020-04-10 19:58:56 【问题描述】:我们在 Google 表格中进行了冲刺容量规划,因为 JIRA 无法根据每个任务的故事点数有效地将任务分解为冲刺。
我们引入了 JIRA 中所有任务及其相关故事点的列表,并通过一些电子表格魔法根据可用故事点的数量构建冲刺。
每次在特定板上的 JIRA 中进行编辑时,电子表格都会通过 Zapier 更新,但有时当很多事情发生变化时,它会触发大量事件,因为在扎皮尔扎普。
我想知道是否有可能在 Google 表格单元格中设置一个可以触发 webhook 的按钮,或者像可以触发 Zap 更新电子表格的日期/时间这样微不足道的东西?
这意味着它在 Zapier 中的任务上不太“昂贵”,并且仅在用户单击电子表格中的按钮时才会更新。
【问题讨论】:
您是否在问如何在 Zapier 或 Google 表格中让事情变得更快?最好发布一个具体的简化示例来说明您的单一和具体问题(带有链接) 两者都不是更快,只是将 webhook 从 JIRA 中的触发器移动到由 Google 表格中的按钮驱动的触发器。考虑一个在单元格中带有按钮的 Google 脚本。 【参考方案1】:您好 tectomics,我相信我已经找到了适合您的解决方案。
高层次的解决方案如下:
在您的 Google 表格中创建一个脚本,该脚本由按下按钮触发。该脚本向正在侦听任何传入流量的 Zapier webhook 发出 HTTP POST 请求。一旦 webhook 被 Zapier 捕获,它就会触发位于 zap 中的所有下游步骤。请注意,要使其正常工作,您需要高级订阅 Zapier,因为 Zapier 的 webhook 应用程序仅限高级访问。
现在详细介绍:
google脚本如下:
function fireZap()
var endpoint = "ZAPIER_WEBHOOK_URL";
var payload =
"uuid" : Utilities.getUuid()
;
var options =
"method" : "post",
"payload" : payload
;
UrlFetchApp.fetch(endpoint, options)
注意:端点变量只是一个示例,您必须在首次创建 webhook 触发器时使用 Zapier 提供的端点 URL 更新该值。
google 脚本使用 UrlFetchApp 类。 Zapier 的 webhook 端点似乎只触发唯一的有效负载数据(至少在测试模式下,对于实时 zap 可能不同),因此我们为有效负载生成一个唯一的 UUID。
编写脚本后,您必须将其链接到工作簿中的按钮。有很多教程,例如 this 一个描述了这样做的直接过程,所以我会省去麻烦。
完成所有这些后,我们将前往 Zapier 并使用 Webhooks zap 创建一个新的 zap 作为触发器。对于触发事件,选择“Catch Hook”。继续“自定义挂钩”部分。在这里,Zapier 将为您提供一个唯一的 URL 端点,将其放在端点变量中,回到谷歌脚本中。
有了这个完整的设置,无论您想要什么下游 zaps,只要您点击位于工作表上的按钮,它就会触发。
希望对你有帮助,
有任何问题请告诉我。
【讨论】:
澄清一下,live hook zaps 不会进行任何重复数据删除。在这种情况下,有效载荷可能每次都是id: 1
,它仍然可以按预期工作。这在测试中可能还不清楚,但是当 zap 开启时就是这种情况。以上是关于按下单元格中的按钮时从 Google 表格触发 webhook的主要内容,如果未能解决你的问题,请参考以下文章
swift 3 在tableView 中按下了哪个单元格按钮