我在Zapier遇到一些问题并获取一些信息。
我要做的是获取网址,接收json响应并将整个响应发送回下一步以进行其他处理。
Zapier似乎忽略了我写的回调或任何其他代码,只是发送了一个' zapier格式化的'响应下一步,但不是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格式的cat响应'。
此外,当我没有遵循zapier回调格式并只是输入fetch
请求时,它也会发回“zapier格式化的cat响应”。到下一步。
fetch('www.url.com', options)
答案 0 :(得分: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对象格式 - 所以最好的办法是返回一个没有嵌套数组的对象。