管理遗留集成
遗留 API 配置设置
转换后的遗留 Web Builder 集成在认证、触发器和操作的 API 配置选项卡上,与在 Platform UI 中构建的集成(以及新添加的触发器或操作)略有不同。在新集成中,每个 API 字段都允许您通过表单设置 API 调用设置,或者切换到 Code Mode 来为该调用及其响应解析添加自定义 JavaScript 代码。然而,在转换后的集成中,您会看到每个 API 调用 URL 的静态文本字段,这些字段是非交互式的。如果您需要自定义 API 调用或响应数据包解析,则需要从 Legacy Scripting 设置中进行操作。
我的代码在哪里?
要查找您之前的代码:
- 登录 Platform UI。
- 选择您的 集成。
- 在左侧侧边栏的 Build 部分,点击您的 Advanced。
- 点击 Legacy Web Builder 选项卡。
您的转换后的集成看起来与从零在 Platform UI 中新建的集成略有不同,但整体上应该会觉得很熟悉(除了版本管理部分)。您可能会注意到有些部分是代码块形式,并且代码在调用 z.legacyScripting.run()
。为了让在旧环境中编写的集成无需修改即可运行,在新环境中,Zapier 会“包装”您的自定义代码和 API 配置,并创建一个运行时库来模拟旧平台的 behavior。因此,每当您看到这一点时,都可以将其视为这种模拟的产物——我们正在使用您的原始代码和配置调用模拟器来执行所需的操作。
在您添加了自定义脚本代码的地方,z.legacyScripting
会调用这些函数来驱动您的触发器、操作和认证事务。
您可以像以前一样编辑此代码,这次是在一个重新设计的编辑器中,该编辑器不会占用整个屏幕。编辑集成代码后,请务必点击 Save,因为 Zapier 不会自动保存更改。
注意:Zapier 强烈推荐在进行任何代码更改之前,先了解 Platform UI 的版本模型。
→ 在 Legacy Scripting 中查找有关编辑集成代码的详细文档。
Platform UI 中不包含的内容
Platform UI 包含了您从遗留 Web Builder 中期望的大部分功能,以及一些新功能来帮助更好地管理您的集成。在转换后的集成中,您会看到一些额外的功能来管理现有的认证、触发器和操作。但是,如果您向集成中添加新触发器或操作,这些功能在新项中将不可用,包括:
- Scripting:遗留 Web Builder 将所有代码组合到一个 Scripting 页面中,让您为认证、触发器、操作和响应数据解析添加自定义代码。但是,如果您向集成中添加新触发器或操作,请使用 Code Mode 来自定义您的 API 调用或响应数据包解析。在 legacy scripting 中了解更多信息。
- Custom results fields:遗留 Web Builder 在触发器和操作中包含一个选项,用于进行 API 调用以获取自定义结果字段名称。Platform UI 在新触发器和操作中不包含此选项,但它允许您在转换后的现有触发器和操作中继续使用此选项。如果您向集成中添加新触发器或操作并需要获取自定义结果字段,则需要在代码模式中将其添加到触发器或操作的 API 调用中。
- OAuth v1:Platform UI 不支持新集成使用 OAuth v1,而是要求新集成使用 OAuth v2 认证。您可以继续在转换后的集成中维护现有的 OAuth v1 认证,但如果您创建一个新版本的集成或在 Platform UI 中重新构建它,则需要使用更新的认证方案。
- Advanced Editor:遗留 Web Builder 包含一个 Advanced Editor 选项,让您使用 JSON 文本编辑集成,而不是使用 web UI 编辑器。该功能在新集成或转换后的集成中不再可用。如果您更喜欢使用 JSON 文本和代码管理集成,更好的选择是导出集成到 Platform CLI,以便在本地开发环境中管理它。一旦您的应用转换为 Platform UI,您将有选项 将您的应用导出到 Platform CLI。
- Files:遗留 Web Builder 包含了一些对 文件处理 的支持。Platform UI 不包含处理文件的功能。要处理文件,请在应用转换后 将您的应用导出到 CLI。
创建新触发器和操作
您可以继续在转换后的 Web Builder 集成中进行开发,创建新触发器和操作。当您创建新触发器或操作时,界面看起来会与从遗留平台转换过来的触发器和操作略有不同,但会让您感到熟悉。最大的不同在于配置 HTTP API 请求时,您将有更多选项来自定义标头和参数,而无需编写自定义代码。而且,当您需要使用自定义代码时,您会在该触发器/操作的 UI 中进行操作,而不是在公共脚本文件中。我们将在下面讨论脚本环境中的差异。
编写自定义脚本代码时的差异
以下内容适用于您在构建 新 触发器和操作时,并使用自定义脚本代码。这些是新平台上操作执行方式的惯用法。
注意:如果您正在 Legacy Web Builder 选项卡 中对代码进行更改,以下声明不适用。该代码在“模拟”上下文中运行,并像旧环境一样工作。
代码的作用域限于单个触发器或操作
在新平台中编写自定义脚本代码时,该代码的作用域仅限于该触发器或操作。这使得更容易理解请求是由自定义代码处理的,还是通过默认请求配置处理的。这也意味着您无法轻松地在不同触发器和操作之间共享代码。为此,请考虑迁移到 Zapier CLI,该工具面向团队、包含自定义代码的项目、需要第三方库的项目等。
提示:一个方便的方法是查看您正在构建的集成定义的 schema。这里 显示了轮询触发器的定义结构。请注意,
perform
字段可以接受一个请求配置对象,或者直接接受一个 JavaScript 函数。Platform UI 反映了这一点。当您配置 API 交互时,您可以使用 Form Mode 配置请求,或者使用 Code Mode 编写函数来代替。
没有 pre 或 post 函数
在遗留 Web Builder 中,您可以编写自定义代码,在请求发出前运行、在请求返回后运行,或者完全接管请求的处理和返回数据给 Zapier。在 Platform UI 中,只有“完全接管”选项。您的请求可以实现一个 perform
函数(执行函数),该函数接受一个 bundle 作为输入,并在请求处理完成时返回数据。
基于 Promise 的 API
新环境中的 API 有一个重大差异:请求 API 是异步的,使用 Promise 而不是同步请求或回调。对于 JavaScript Promise 新手的开发人员,这可能是一个小障碍。我们建议花几分钟时间熟悉 Promise 的工作原理。z.request
库的工作方式与基于 Promise 的 Fetch API 非常相似,因此大多数关于 Fetch API 的文章和教程都适用于在 Zapier 环境中编写自定义代码。
不包含库
遗留 Web Builder 工具在其上下文中包含了几个 JavaScript 库,例如 Underscore 和 jQuery,以便您在脚本代码中使用这些库。在 Platform UI 中编写脚本代码时,这些库不再可用。您可以使用 Node.js 的任何 JavaScript 功能(在撰写本文时为版本 12,可能在您阅读时为 v14),包括其标准库中的 z.require
。
如果您需要或更喜欢使用第三方 JavaScript 库,则需要切换到 Platform CLI,在那里您可以从 npm 安装模块并在整个代码中引用它们。
Bundle 对象的结构和命名不同
Bundle 的字段名称和结构在遗留 Web Builder 和新平台之间略有不同。在我们的 Bundle 文档 中了解更多详细信息。