这是我在这里的第二篇文章。第一个没有收到任何答复,但我是这个想实现他的想法的顽固家伙。正如我的个人资料所述,我是一个真正的初学者...如果您愿意的话,我可以教您轮椅网球或篮球,但是关于编码的事情却一无所有...
好吧,我在这里遇到我的问题:
我有来自this service的多个HTTP GET URL
我想在一个zapier代码步骤中获取每个网址。
扎皮尔团队告诉我:
我已经指出了一些要解决的问题,但是出于完全透明的目的,除非您习惯使用“代码”步骤,否则此Zap将很难使之可行。该Zap将返回大量数据,并且看来您使用此代码步的方式会更好(例如,使用For循环进行HTTP调用)。
好吧,这里我有这段代码...还没有“ for循环” ...我仍然不知道该怎么写。
您能根据这个样本给我建议吗?
var url1 = 'https://triplogmileage.com/web/api/trips';
var url2 = 'https://triplogmileage.com/web/api/vehicules';
var url3 = 'https://triplogmileage.com/web/api/users';
var options = {
method: 'GET',
headers: {'Authorization': 'apikey 028cbda51a7c4a919546414e37f22298', 'Authorization': 'apikey 028cbda51a7c4a919546414e37f22298','Authorization': 'apikey 028cbda51a7c4a919546414e37f22298'}
};
fetch(url1,url2,url3,options)
.then(function(json) {
var output = {};
callback(null, output);
})
.then(function(json) {
var output = {};
callback(null, output);
})
.then(function(json) {
var output = {};
callback(null, output);
})
.catch(callback);
在zapier上测试时,没有出现错误,但我没有将数据作为json文件。
测试后的Zapier说:
runtime_meta duration_ms 45
memory_used_mb 75
logs async true
id 1JTWcHwBNqjR190PRJbg8QLiRIvk6QKh
我走对了吗?
谢谢
答案 0 :(得分:0)
Zapier Platform团队的David在这里。这里有几件事要注意!
首先,我希望这不是您真正的API密钥。这是公开的,因此就像在开放的Internet上输入密码一样。如果可以,请尽快重置或使其无效。
要学习一些基本的javascript,请查看以下内容:https://learnxinyminutes.com/docs/javascript。尽管其他人可以为您编写代码,但您理解它在使代码可维护方面将大有帮助。
对于多个网址,您调用提取的方式是错误的-一次只能使用一个网址。官方文档为here,并提供了有用的演练here。每次抓取使用一个URL,您将需要3次抓取才能击中所有3个端点。
最简单的方法是使用await
,我们的代码步骤现在支持此功能!这里有一个类似的问题:How can I fetch an array of URLs with Promise.all?。您将使用await Promise.all
并能够获得3个响应中的每个响应。这里还有一个非常完整的外观函数:https://gist.github.com/bschwartz757/5d1ff425767fdc6baedb4e5d5a5135c8
由于fetch
的滥用以及承诺链无法实现您的期望,您编写的代码无法正常工作。希望所提供的资源能够为您指明正确的方向!