【问题标题】:Zapier - REST hook trigger - How do you include a variable-size array output field in the output data?Zapier - REST 挂钩触发器 - 如何在输出数据中包含可变大小的数组输出字段?
【发布时间】:2020-10-19 22:38:04
【问题描述】:

对于我正在开发的 Zapier 应用程序,我正在配置一个 REST Hook 类型的触发器。

假设我的 API 发布了有关足球比赛的详细信息。通过我的 API 发布到 Zapier 的数据格式如下所示:

[{
"game_start_time": "2020-06-26",
"home_score": 2,
"away_score": 1,
"goals": [
   {
      "time": "45+2",
      "player_name": "Lionel Messi",
      "team": "home"
   },
   {
      "time": "65",
      "player_name":"Cristiano Ronaldo",
      "team": "away"
   },
   {
      "time": "90+5",
      "player_name": "Lionel Messi",
      "team": "home"
   }
],
"attendance": 76000,
"penalties": [
   {
      "time": "21",
      "player_name":"Cristiano Ronaldo",
      "type": "yellow",
      "reason": "diving" 
   }
]
}]

输出字段指定如下:

  • “键”:“标签”
  • game_start_time:关键开始时间
  • home_score:主场得分
  • away_score:客场得分
  • 目标:目标
  • goals[]time: 目标 - 时间
  • goals[]player_name: 目标 - 玩家姓名
  • goals[]team: 目标 - 团队
  • 出勤:出勤
  • 处罚:处罚
  • penalties[]time: Penalty - Time
  • penalties[]player_name: Penalty - 玩家姓名
  • penalties[]type: Penalty - Type
  • penalties[]reason: Penalty - Reason

我希望能够允许我的应用程序的用户使用我的 API 提供的所有输出字段,包括 goals 和 penalties。当我尝试指定这些输出字段时,我似乎没有办法分别获取数组中的对象。

例如:

  • 预期:
goals: [{
      "time": "45+2",
      "player_name": "Lionel Messi",
      "team": "home"
   },
   {
      "time": "65",
      "player_name":"Cristiano Ronaldo",
      "team": "away"
   },
   {
      "time": "90+5",
      "player_name": "Lionel Messi",
      "team": "home"
   }]
  • 实际:
goals[]time: "45+2, 65, 90+5"
goals[]player_name: "Lionel Messi, Cristiano Ronaldo, Lionel Messi"
goals[]team: "home, away, home"

使用我的 Zapier 应用触发器的 Zap 似乎很难使用 penalties 和 goals,除非他们添加自己的自定义代码来解析我的触发器的数据。

【问题讨论】:

  • 您能分享一下您现在是如何指定这些输出字段的吗?
  • @will-yama 我已经更新了问题

标签: zapier


【解决方案1】:

这是一个棘手的情况,我相信这与 Zapier 如何在整个 Zapier 中处理嵌套数组(我们平台上的又名“行项目”)的响应有关。也就是说,它本身并不是真正特定于您的应用/集成。

默认情况下,每个键/值都会变成一个字段。任何具有对象数组的键都会将单个字段作为“行项目”返回,这就是为什么您会看到诸如目标[]时间等以逗号分隔的值。

就像现在一样,您可以使用 https://zapier.com/help/create/format/get-started-with-formatter 中所述的“行项目到文本格式化程序”步骤

但在这种情况下,我建议将“目标”和“处罚”数组转换为顶级数组,其中所有数据均已展平,并添加到触发器发送到操作步骤的对象中。在将触发器的结果作为开发应用程序的一部分处理时,您需要这样做。

【讨论】:

  • 我明白了。对于我的用例,了解每个点球和进球的背景很重要(即莱昂内尔·梅西(Lionel Messi)在 45+2 分钟时得分)。我不是 100% 确定“所有数据扁平化的顶级数组”是什么意思。我所做的是将新字段添加到触发器正在发送的对象中。一个叫做goals_JSON,它就是JSON.stringify(goals),还有一个叫做惩罚_JSON 的类似字段。使用 Zapier 代码步骤,可以根据用户的需要对数据进行格式化。它目前有效,但很难期望我们的客户这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多