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

Posted

技术标签:

【中文标题】Zapier 代码操作,HTTP GET “多个 url”【英文标题】:Zapier code Action, HTTP GET "multiple urls" 【发布时间】:2018-12-27 23:41:48 【问题描述】:

这是我在这里的第二篇文章。第一个没有得到答复,但我是这种固执的人,想要实现他的想法。正如我在个人资料中提到的那样,我是一个真正的初学者...如果您愿意,我可以教您轮椅网球或篮球,但没有关于编码...

好吧,我的问题来了:

我有多个来自 this service 的 HTTP GET URL

我想在一个 zapier 代码步骤中获取每个 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

我走对了吗?

谢谢,

【问题讨论】:

您有 API 密钥吗? 我愿意。每个网址都是一样的。我今天已经能够从一个 URL 获得 json 文件。我是triplog中的管理员用户,上面示例中的api密钥是:apikey 5c36c4ee66ba4c649c8a36abf2c2a906(之后更改为另一个)。我只是不记得我今天是如何从“trips url”中获取数据的……花了很多时间在这上面,开始有火花。 【参考方案1】:

David 来自 Zapier 平台团队。这里有几点需要注意!

首先,我希望这不是您真正的 API 密钥。这是公开的,所以就像将您的密码放在开放的互联网上一样。如果可以,请尽快重置或使其无效。

为了学习一些基本的 javascript,我会看看这个:https://learnxinyminutes.com/docs/javascript。尽管其他人可以为您编写代码,但您理解它对于使其可维护性大有帮助。

对于多个 url,您调用 fetch 的方式不正确 - 它一次只能获取一个 url。官方文档是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 的误用和不符合您期望的承诺链,您编写的代码无法正常工作。希望所提供的资源能为您指明正确的方向!

【讨论】:

太棒了!如果此答案解决了您的问题,请确保对其进行投票并将其标记为正确 (info)。 非常感谢大卫,这会有所帮助!不用担心,我每次发布后都更改了apikey。我知道这个安全问题。我在代码中保留了旧的 API 密钥,但立即更改为新的。我在这里学习,我所做的是从这里和那里获取代码片段并尝试过尝试过。我真的很想了解事情是如何运作的,你的回答很宝贵,因为它给了我一些关于如何让它发挥作用的提示。非常感谢!代码和帖子即将更新! 很高兴听到这个消息!

以上是关于Zapier 代码操作,HTTP GET “多个 url”的主要内容,如果未能解决你的问题,请参考以下文章

支持多个文件的 Zapier 操作

Zapier 应用程序:使用 GET 请求发送正文

从 Django 代码调用 Zapier 触发器

您如何创建和添加 Zapier Zap 操作链接?

在 Zapier 中使用 Python 获取图像

是否可以在 Zapier 中创建 Stripe 退款操作?