2017-04-07 56 views
0

我遇到了Zapier的一些问题并获取了一些信息。Zapier重新格式化获取响应

我想要做的是获取一个url,接收一个json响应并将整个响应发送回下一步做额外的处理。

Zapier似乎忽略了我写的回调或任何其他代码,只是发送'zapier formatted'响应到下一步,但不是以json格式。下面是代码示例:

请求客户端

var authHeaders = { 
    'Authorization': 'Bearer xxxx', 
    'Content-Type': 'application/json' 
} 
var options = { 
    method: 'GET', 
    headers: authHeaders 
}; 

fetch('www.url.com', options) 
    .then(function(res) { 
    return res.json(); 
    }) 
    .then(function (json) { 
    callback(null, json) 
    }) 
    .catch(callback); 

Zapier下拉下一步选项:

input.name === harry,bob,sally 
input.color === red, blue, green 

从客户

{ 
    cats: [ 
    {name: 'harry', color: 'red'}, 
    {name: 'bob, color: 'blue''}, 
    {name: 'sally', color: 'green'}, 
    {name: 'mary', color: 'green'}, 
    {name: 'george', color: 'green'} 
    ] 
} 

回应,我想在未来的什么zapier一步是客户的反应,而不是Zapier解释,所以我可以做正常的循环和解析一个json对象。

cats.filter(function(cat){ 
    return cat.color === 'green' 
}) 

我想一切都是绿色的猫返回到下一个步骤。如果所有的cat属性都在不同的zapier字段中,我该怎么做?

我试过的另一件事是在做出GET请求之后重新格式化zapier下一步响应,但zapier不听我的。

fetch('www.url.com', options) 
    .then(function(res) { 
    callback(null, {dog: 'yorkie'}) 
    }) 
    .catch(callback); 

上面的代码应该只发送的对象我传递,{dog: 'yorkie'}但它返回相同的“zapier格式化的猫回应”。

此外,当我没有遵循zapier回调格式,只需要输入fetch请求时,它也会将'zapier格式化的cat响应'发回到下一步。

fetch('www.url.com', options) 

回答

0

你可能会希望做的所有的过滤在JS一步,只能发出你所关心的,而不是发光的所有记录,使该过滤他们的新步骤的记录。

fetch('www.url.com', options) 
    .then(function(res) { 
     return res.json(); 
    }) 
    .then(function (json) { 
     json = json.filter(record => record.color === 'green'); 
     callback(null, json); 
    }) 
    .catch(callback); 

如果我们用嵌套列表的对象 - 它可能很难让他们回到在后续步骤的原料JS对象格式 - 所以最好的办法是不带嵌套数组返回一个对象。