如何从 zapier 代码触发 webhook
how to trigger webhook from zapier code
我有 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 处理异步结果的函数。
此代码成功运行,我可以看到结果:
但是那些请求没有在 webhook 中注册(地址是正确的。仔细检查。)
这可能是什么原因?如何修复我的代码以使请求激活 webhook?
可能是因为您的 options
中没有使用 fetch
方法发送的 body
项目。 The documentation 将此显示为 POST
示例:{ method: 'POST', body: 'a=1' }
,因此也许可以尝试使其完全一样。
我有 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 处理异步结果的函数。
此代码成功运行,我可以看到结果:
但是那些请求没有在 webhook 中注册(地址是正确的。仔细检查。)
这可能是什么原因?如何修复我的代码以使请求激活 webhook?
可能是因为您的 options
中没有使用 fetch
方法发送的 body
项目。 The documentation 将此显示为 POST
示例:{ method: 'POST', body: 'a=1' }
,因此也许可以尝试使其完全一样。