Zapier代码操作,HTTP GET“多个网址”

时间:2018-07-19 18:12:39

标签: javascript http-headers zapier

这是我在这里的第二篇文章。第一个没有收到任何答复,但我是这个想实现他的想法的顽固家伙。正如我的个人资料所述,我是一个真正的初学者...如果您愿意的话,我可以教您轮椅网球或篮球,但是关于编码的事情却一无所有...

好吧,我在这里遇到我的问题:

我有来自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

我走对了吗?

谢谢

1 个答案:

答案 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的滥用以及承诺链无法实现您的期望,您编写的代码无法正常工作。希望所提供的资源能够为您指明正确的方向!