2017-04-07 77 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對象格式 - 所以最好的辦法是不帶嵌套數組返回一個對象。