Skip to main content

已转换的遗留 Web 构建器集成中的脚本

本指南说明了如何编辑和维护已转换为 Platform UI 或 Platform CLI 的遗留 Web 构建器集成的现有脚本方法。

引言


注意:本指南不适用于在 Platform CLI 或 Platform UI 中构建的新集成。对于新集成,请使用 Platform UIPlatform CLI 来构建代码集成。

如果您正在创建新功能,请查看维护已转换集成的推荐方法。类似于 Code Mode,Zapier 的 Web 构建器脚本是以前允许您直接操作应用 API 与 Zapier 之间交换的请求和响应的方式。它将继续通过 Platform UI 和 CLI 支持。

访问和编辑脚本


对于已转换为 Platform UI 的集成,您可以通过以下步骤访问和编辑这些脚本方法:

  1. 登录 Platform UI
  2. 选择您的 集成
  3. 在左侧边栏的 构建 部分,点击 高级
  4. 点击 遗留 Web 构建器 选项卡。

Platform UI 与 CLI 比较

对于已转换为 Platform CLI 的集成,您可以在 Scripting.js 文件中访问和编辑这些脚本方法。该文件默认位于您的 CLI 集成根目录。

每个已转换的 Web 构建器集成都会在 Scripting.js 文件中定义一个根模块 Zap。默认情况下,它是一个空白的 JavaScript 对象。您可以通过指定一个或多个 可用方法 来添加内容。每个方法接受一个名为 bundle 的单一变量,该变量是一个可 JSON 序列化的对象。bundle 的内容因您实现的特定方法而异。您的方法输出必须是一个可序列化的对象。

以下是实现一个直通方法的示例:

var Zap = {
my_trigger_pre_poll: function(bundle) {
// 用于在发送前修改 bundle.request 的代码
return bundle.request;
}
}

注意:在 Scripting API 中编写的所有代码必须遵守 严格模式,这是一个 JavaScript 的子集。如果您的代码违反此规则,Scripting API 编辑器会在侧边栏显示红色 X 标记。该代码将在当前 Node.js 环境中运行,您可以在 此处 跟踪此信息。

可用方法


有各种方法用于操作 Zapier 向您的 API 发送的请求。以下是您可以在脚本中使用的方法的完整列表。您可以提供任意、全部或都不提供这些方法。

触发器方法

许多触发器方法遵循键 + 方法名的命名模式,其中键是您创建触发器时为其分配的键。以下,Zapier 使用 KEY 作为占位符,表示触发器的实际键。例如,如果您定义了一个键为 “my_trigger” 的触发器,并希望实现 pre_poll 方法,则会编写一个名为 my_trigger_pre_poll 的方法。

轮询

KEY_pre_poll

在向轮询 URL 发送请求之前运行。可以修改请求,然后再发送。

var Zap = {
KEY_pre_poll: function(bundle) {
/*
参数:
bundle.request.method: <string> # "GET"
bundle.request.url: <string>
bundle.request.auth: <string>
bundle.request.headers: <string>
bundle.request.params: <string>

bundle.url_raw: <string>
bundle.auth_fields: <string>
bundle.trigger_fields: <string> # 用户在设置过程中提供的字段
bundle.zap: <string> # 关于 Zap 的信息
bundle.meta: <string> # 额外运行时信息

响应应为 bundle.request 或类似对象
*/
return {
url: bundle.request.url,
method: bundle.request.method,
auth: bundle.request.auth,
headers: bundle.request.headers,
params: bundle.request.params,
data: bundle.request.data
}; // 或 return bundle.request;
}
}

请参阅 bundle.request

注意:此代码仅适用于 Zapier 的遗留 Web 构建器。它与 Zapier 的 Platform CLI 和 Platform UI 大多不兼容。

KEY_post_poll

在 Zapier 从轮询 URL 接收到响应后运行。可以解析响应以格式化数据,或抛出 异常。Zapier 会在方法运行后针对状态码 4xx 和 5xx 自动抛出异常。

var Zap = {
KEY_post_poll: function(bundle) {
/*
参数:
bundle.response.status_code: <string>
bundle.response.headers: <string>
bundle.response.content: <string>

bundle.request: <original object from KEY_pre_poll bundle>

bundle.auth_fields: <string>
bundle.trigger_fields: <string> # 用户在设置过程中提供的字段
bundle.zap: <string> # 关于 Zap 的信息
bundle.meta: <string> # 额外运行时信息

响应应为可 JSON 序列化的数组:
[
<string>, # 包含唯一的 'id' 键
<string> # 包含唯一的 'id' 键
]
*/
return [];
}
}

注意:此代码仅适用于 Zapier 的遗留 Web 构建器。它与 Zapier 的 Platform CLI 和 Platform UI 大多不兼容。

KEY_poll

取代 pre_poll 和 post_poll 而运行。您需要发出请求并返回结果列表,或抛出 异常。Zapier 不会针对状态码 4xx 和 5xx 自动抛出异常。

var Zap = {
KEY_poll: function(bundle) {
/*
参数:
bundle.request.method: <string> # "GET"
bundle.request.url: <string>
bundle.request.auth: <string>
bundle.request.headers: <string>
bundle.request.params: <string>

bundle.url_raw: <string>
bundle.auth_fields: <string>
bundle.trigger_fields: <string> # 用户在设置过程中提供的字段
bundle.zap: <string> # 关于 Zap 的信息
bundle.meta: <string> # 额外运行时信息

如果包含回调参数,则可以执行异步操作:
callback(err, response)

响应应为可 JSON 序列化的数组:
[
<string>, # 包含唯一的 'id' 键
<string> # 包含唯一的 'id' 键
]
*/
return []; // 或 callback(null, [])
}
}

请了解更多关于 bundle.request 的信息。

注意:此代码仅适用于 Zapier 的遗留 Web 构建器。它与 Zapier 的 Platform CLI 和 Platform UI 大多不兼容。

(完整翻译已基于初始版本进行优化,以提升流畅性和准确性。)