【问题标题】:Zapier lazy load input fields choicesZapier 延迟加载输入字段选择
【发布时间】:2019-02-25 13:19:08
【问题描述】:

我正在为具有动态字段的平台构建一个 Zapier 应用程序。我有一个 API 可以返回我的一个资源的字段列表(例如):

[
  { name: "First Name", key: "first_name", type: "String" },
  { name: "Civility", key: "civility", type: "Multiple" }
]

我基于此 API 构建我的操作的 inputFields

create: {
  [...],
  operation: {
    inputFields: [
      fetchFields()
    ],
    [...]
  },
}

API 返回值列表类型(例如:Civility),但要获得这些值,我必须进行另一个 API 调用。

目前,我所做的是在我的fetchFields 函数中,每次遇到type: "Multiple" 时,我都会执行另一个API 调用来获取可能的值并在我的输入字段中将其设置为choices。然而,这很昂贵,而且 Zapier 上的页面需要花费太多时间来显示这些字段。

我尝试使用 Zapier 提供的z.dehydrate 功能,但它不适用于输入choices

我无法在此处使用动态下拉列表,因为我无法传递我正在寻找的字段可能值的键。例如,要取回 Civility 的可能值,我需要将 civility 密钥传递给我的 API。

在这种情况下有哪些选择?

【问题讨论】:

    标签: lazy-loading zapier zapier-cli


    【解决方案1】:

    David 来自 Zapier 平台团队。

    感谢您的来信!我认为你正在做的事情是可能的,但我也不是 100% 理解你在问什么。

    您可以在函数中进行多个 API 调用(听起来很像)。最后,该函数应该返回一个Field 对象数组(如here 所述)。

    您可能不知道的关键是后续步骤可以访问部分填充的bundle.inputData,因此您可以使用第一个函数来获取字段选项并允许用户选择某些内容,然后是第二个函数根据该选择运行并拉入字段。

    否则,我认为执行 2 个 api 调用的函数(一个用于获取字段类型,一个用于将它们转换为 Zapier field 对象)是最好的选择。

    如果这没有回答您的问题,请随时发送电子邮件至partners@zapier.com 或加入 slack 组织(链接在自述文件底部),我们将在那里尝试解决。

    【讨论】:

    • 嘿大卫,谢谢,我联系了支持人员并得到了这个答案:“这实际上是我们现在正在积极努力的事情。你可以参考该领域的关键动态下拉方法。目前唯一的方法是让每个动态下拉列表根据您想要返回的值引用一个唯一的触发键,但这可能需要您提前了解这些下拉列表的每种类型。 "
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 2010-11-04
    相关资源
    最近更新 更多