如何从zapier代码触发webhook

时间:2017-09-01 14:36:28

标签: javascript integration webhooks fetch-api zapier

我有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();});
};

N.B。 callback是Zapier处理异步结果的功能。

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

enter image description here

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

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

1 个答案:

答案 0 :(得分:1)

您的body中的options项可能不会通过fetch方法发送。 The documentation将此显示为POST示例:{ method: 'POST', body: 'a=1' },因此可能尝试使其完全相同。