Zapier - REST 挂钩触发器 - 如何在输出数据中包含可变大小的数组输出字段?
Zapier - REST hook trigger - How do you include a variable-size array output field in the output data?
对于我正在开发的 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:客场比分
- 目标:目标
- 目标[]时间:目标 - 时间
- 目标[]player_name:目标 - 球员姓名
- 目标[]团队:目标 - 团队
- 出勤率:出勤率
- 处罚:处罚
- 惩罚[]时间:惩罚 - 时间
- 罚球[]player_name:罚球 - 球员姓名
- 惩罚[]类型:惩罚 - 类型
- 处罚[]原因:处罚 - 原因
我希望能够允许我的应用程序的用户使用我的 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 App Trigger 的 Zap 似乎很难使用 penalties
和 goals
,除非他们添加自己的自定义代码来解析我的 Trigger 的数据。
这是一个棘手的情况,我认为这与 Zapier 如何在整个 Zapier 中处理嵌套数组(在我们的平台上也称为“订单项”)的响应有关。也就是说,它本身并不是真正特定于您的 app/integration。
默认情况下,每个 key/value 都会变成一个字段。任何具有对象数组的键都会将各个字段作为“行项目”返回,这就是为什么您会看到诸如 goals[]Time 等内容的逗号分隔值。
就目前而言,您可以使用 https://zapier.com/help/create/format/get-started-with-formatter
中概述的行项目到文本格式化程序步骤
但在这种情况下,我建议将 Goals 和 Penalties 数组转换为顶级数组,其中所有数据都被展平并添加到触发器发送到操作步骤的对象中。作为开发应用程序的一部分处理触发器的结果时,您将需要执行此操作。
对于我正在开发的 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:客场比分
- 目标:目标
- 目标[]时间:目标 - 时间
- 目标[]player_name:目标 - 球员姓名
- 目标[]团队:目标 - 团队
- 出勤率:出勤率
- 处罚:处罚
- 惩罚[]时间:惩罚 - 时间
- 罚球[]player_name:罚球 - 球员姓名
- 惩罚[]类型:惩罚 - 类型
- 处罚[]原因:处罚 - 原因
我希望能够允许我的应用程序的用户使用我的 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 App Trigger 的 Zap 似乎很难使用 penalties
和 goals
,除非他们添加自己的自定义代码来解析我的 Trigger 的数据。
这是一个棘手的情况,我认为这与 Zapier 如何在整个 Zapier 中处理嵌套数组(在我们的平台上也称为“订单项”)的响应有关。也就是说,它本身并不是真正特定于您的 app/integration。
默认情况下,每个 key/value 都会变成一个字段。任何具有对象数组的键都会将各个字段作为“行项目”返回,这就是为什么您会看到诸如 goals[]Time 等内容的逗号分隔值。
就目前而言,您可以使用 https://zapier.com/help/create/format/get-started-with-formatter
中概述的行项目到文本格式化程序步骤但在这种情况下,我建议将 Goals 和 Penalties 数组转换为顶级数组,其中所有数据都被展平并添加到触发器发送到操作步骤的对象中。作为开发应用程序的一部分处理触发器的结果时,您将需要执行此操作。