如何从 zapier 代码触发 webhook

Posted

技术标签:

【中文标题】如何从 zapier 代码触发 webhook【英文标题】:how to trigger webhook from zapier code 【发布时间】:2018-02-10 15:48:59 【问题描述】:

我有 2 个 zaps。首先以Code by Zapier 块结束,我在其中解析来自先前步骤的输入信息,获取包含数据的数组,例如:

var elements = [id: 12, calculatedValue: 13,id: 13, calculatedValue: 'red']

然后循环遍历它,创建请求体

var options = 
      "url": "https://hooks.zapier.com/hooks/catch/xxxxxx/xxxxxx/",
      "method": "POST"
    ,
    requests = elements.map(mapDataToSettings);

function mapDataToSettings(elem) 
  var settings = Object.assign(, options);
  settings.data = JSON.stringify(elem);
  return settings;
;

然后我对所有这些请求使用Fetch API 进行 HTTP 调用:

Promise.all(requests.map(grabContent))
.then(function(data) callback(null, requestsMade: data););

function grabContent(options) 
  return fetch(options.url, options)
     .then(function(res) return res.json(););
;

注意 callback 是 Zapier 处理异步结果的函数。

这段代码运行成功,我可以看到结果:

但是这些请求没有在 webhook 中注册(地址是正确的。仔细检查。)

这可能是什么原因?如何修复我的代码以使请求激活 webhook?

【问题讨论】:

【参考方案1】:

您的options 中可能没有使用fetch 方法发送的body 项目。 The documentation 将其显示为 POST 示例: method: 'POST', body: 'a=1' ,所以不妨尝试让它完全一样。

【讨论】:

是的,这就是问题所在。我在某处看到获取信息对象具有data 属性,因此造成了这个错字。

以上是关于如何从 zapier 代码触发 webhook的主要内容,如果未能解决你的问题,请参考以下文章

如何从“Zapier 代码”(Javascript)读取文件输入

是啥导致“Zapier 的代码”触发器独立运行?

使用 Zapier Webhook 触发 Twilio 工作室流程

Zapier:如何确保我只为轮询触发器返回一次项目

在“Zapier 代码”操作中触发多个 webhook 调用

如何 JSON.parse Zapier 触发器中的数组?