2017-09-01 133 views
0

我有2个zaps。首先完成与Code by Zapier块,在这里我分析从前面的步骤获得阵列数据,例如输入信息:如何从zapier代码触发webhook

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; 
}; 

然后我做HTTP与Fetch API呼吁所有这些请求:

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

NBcallback是Zapier处理异步结果的函数。

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

enter image description here

但这些请求都没有在网络挂接注册(地址是正确的双重检查。)

可能是什么原因为了这?如何解决我的代码,使请求激活webhook?

回答

1

这可能是因为您的options中没有body项,与fetch方法一起发送。 The documentation将此显示为POST示例:{ method: 'POST', body: 'a=1' },因此可能尝试使其完全如此。

+0

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