"Code by Zapier"中的fetch怎么写?
How to write fetch in "Code by Zapier"?
在zapier中我使用了Code By Zapier的动作。它基于 node.js。
我需要使用 fetch 来实现我的 CRM 的 REST-API。
这是我编写的代码,当我使用 VS Code(在 Zapier 之外)尝试它时运行良好:
// the code by zapier includes already the require('fetch')
var api_token = "..."; // my api
var deal_name = "Example"; // a string
fetch("https://api.pipedrive.com/v1/deals/find?term="+deal_name+"&api_token=" + api_token)
.then(function(res) {
return res.json();
}).then(function(json) {
var deal_id = json.data[0].id;
console.log("deal_id="+deal_id);
}).catch(function(error) {
console.log("error");
});
output = {id: 1, hello: "world"}; // must include output...
我从 Zapier 得到的错误是:
If you are doing async (with fetch library) you need to use a
callback!
请帮我解决一下。
这是在 Node.js/callback 环境中编码时的典型错误。
You are using console.log
which prints to your console, but doesn't return data to the parent (Zapier in this case).
这是一个好代码和坏代码的例子:
// bad code
fetch(url)
.then(function(res) {
return res.json();
}).then(function(json) {
// when i run this in my node repl it works perfect!
// the problem is this doesn't return the data to zapier
// it just prints it to the system output
console.log(json);
});
// good code
fetch(url)
.then(function(res) {
return res.json();
}).then(function(json) {
// but if i swap this to callback, this works perfect in zapier
callback(null, json);
});
希望对您有所帮助!
最近,您还可以使用 async/await,正如示例代码块顶部的默认注释所指出的那样:
// this is wrapped in an `async` function
// you can use await throughout the function
const response = await fetch('http://worldclockapi.com/api/json/utc/now')
return await response.json()
查看文档中的更多示例:https://zapier.com/help/create/code-webhooks/javascript-code-examples-in-zaps#step-2
请注意,免费层有 1 秒超时(如果您使用 Promise.all()
执行多次提取,则尤其重要!)
在zapier中我使用了Code By Zapier的动作。它基于 node.js。 我需要使用 fetch 来实现我的 CRM 的 REST-API。
这是我编写的代码,当我使用 VS Code(在 Zapier 之外)尝试它时运行良好:
// the code by zapier includes already the require('fetch')
var api_token = "..."; // my api
var deal_name = "Example"; // a string
fetch("https://api.pipedrive.com/v1/deals/find?term="+deal_name+"&api_token=" + api_token)
.then(function(res) {
return res.json();
}).then(function(json) {
var deal_id = json.data[0].id;
console.log("deal_id="+deal_id);
}).catch(function(error) {
console.log("error");
});
output = {id: 1, hello: "world"}; // must include output...
我从 Zapier 得到的错误是:
If you are doing async (with fetch library) you need to use a callback!
请帮我解决一下。
这是在 Node.js/callback 环境中编码时的典型错误。
You are using
console.log
which prints to your console, but doesn't return data to the parent (Zapier in this case).
这是一个好代码和坏代码的例子:
// bad code
fetch(url)
.then(function(res) {
return res.json();
}).then(function(json) {
// when i run this in my node repl it works perfect!
// the problem is this doesn't return the data to zapier
// it just prints it to the system output
console.log(json);
});
// good code
fetch(url)
.then(function(res) {
return res.json();
}).then(function(json) {
// but if i swap this to callback, this works perfect in zapier
callback(null, json);
});
希望对您有所帮助!
最近,您还可以使用 async/await,正如示例代码块顶部的默认注释所指出的那样:
// this is wrapped in an `async` function
// you can use await throughout the function
const response = await fetch('http://worldclockapi.com/api/json/utc/now')
return await response.json()
查看文档中的更多示例:https://zapier.com/help/create/code-webhooks/javascript-code-examples-in-zaps#step-2
请注意,免费层有 1 秒超时(如果您使用 Promise.all()
执行多次提取,则尤其重要!)