@zapier / zapier-sdk-cli
目录表
- 稳定
- 快速入门
- 安装
- 预排
- 全局选项
- 可用命令
- 账户
- 行动
- 应用程序
- 客户端凭证
- 连接
- HTTP请求
- 人为输入(实验)
- Next Gen Zaps (Beta版)
cancel-durable-runcreate-workflowcreate-workflow-draftdelete-workflowdisable-workflowdiscard-workflow-draftenable-workflowget-durable-runget-trigger-runget-workflowget-workflow-draftget-workflow-runget-workflow-versionimport-workflowlist-durable-runslist-workflow-draftslist-workflow-runslist-workflow-versionslist-workflowspublish-workflow-draftpublish-workflow-versionrun-durablerun-workflowrun-workflow-drafttrigger-workflowupdate-workflowupdate-workflow-draftvalidate-workflow
- Next Gen Zaps(实验)
- 表
- 触发器
ack-trigger-inbox-messagescreate-trigger-inboxdelete-trigger-inboxdrain-trigger-inboxensure-trigger-inboxget-trigger-inboxget-trigger-input-fields-schemalease-trigger-inbox-messageslist-trigger-inbox-messageslist-trigger-inboxeslist-trigger-input-field-choiceslist-trigger-input-fieldslist-triggerspause-trigger-inboxrelease-trigger-inbox-messagesresume-trigger-inboxupdate-trigger-inboxwatch-trigger-inbox
- 公用事业公司
- 虚拟文件系统(实验)
稳定
每个命令都属于三个稳定层之一。默认情况下可以使用稳定命令;选择更广泛的层与 --stability beta / --stability experimental,或者 ZAPIER_STABILITY=<level> 在环境中。
| 层 | 合同 |
|---|---|
| 稳定的 | 我们打算保留的地表。虽然SDK处于开放测试版(0。X),突破性的更改仍然可以在小版本中登陆;我们会在可能的情况下首先弃用,并且会在变更日志中以迁移注释的形式标注出来。 |
| β | 功能齐全,准备构建,但形状仍然可能改变,因为它沉淀。更改在次要版本中发布,并附有更改日志迁移说明,没有弃用期。 |
| 实验 | 仍在设计中;可能在任何释放中改变形状或消失,恕不另行通知。 |
非稳定命令被标记为 --help 然后打印 ⚠️ BETA COMMAND / ⚠️ EXPERIMENTAL COMMAND 注意它们何时运行。
快速入门
对于新项目。
启动一个新项目,你需要的一切,开始通过Zapier整合数千个应用程序:
# Create a new Zapier SDK project (scaffolds files, installs deps, and logs you in).
npx @zapier/zapier-sdk-cli init my-zapier-app
# Or skip the interactive prompts and accept all defaults.
npx @zapier/zapier-sdk-cli init my-zapier-app --non-interactive
安装
对于现有的项目。
运行向导式设置来添加未声明的Zapier SDK依赖项,验证和检查连接的应用:
npx @zapier/zapier-sdk-cli setup
对于AI代理或其他非交互式调用者,开始逐步设置:
npx @zapier/zapier-sdk-cli setup --agent
逐字逐句地询问打印向导问题。批准后,运行准确
setup --step <name> --non-interactive 命令。使用 --answer 选择或
文本输入。成功后,按照命令打印的下一步指导操作;
没有额外的 --agent 需要打电话。
代理人拥有批准和进度;安装程序都不保存。
完成后,当前代理接收指令,从
连接的应用程序,而不是被要求打开哪个代理。
留在指定的目录中。导出共享SDK设置,以便以后的命令和 生成的脚本继承它们。全局CLI标志只应用于它们的调用。 安装程序使用正常的SDK凭证和挂起的OAuth存储;挂起的OAuth流 由安装程序开始,必须保留保存帐户的记录。本地授权 在浏览器中完成。无头授权要求用户粘贴最终结果 回调URL;将它只传递给打印的命令,不要保存它。 永远不要重复一个结果未知的命令,尤其是Slack发送。
打印的命令固定CLI版本,并使用POSIX shell语法。代理模式使用
纯文本,不是 --json,并且从不读取终端输入。普通的 setup
需要一个终端,并指向其他呼叫者 --agent.
如果你已经有了一个项目,想要添加CLI作为依赖项:
npm install -D @zapier/zapier-sdk-cli
预排
# See all available commands
npx zapier-sdk --help
# Login to Zapier.
npx zapier-sdk login
# Search from thousands of supported apps.
npx zapier-sdk list-apps --search "gmail"
# The output will show you the valid keys next to the app title like this:
# 1. Gmail (GoogleMailV2CLIAPI, gmail)
# Run any action for the app, using one of the app keys.
npx zapier-sdk run-action gmail
# This will ask you for the type of action you want to run.
# `search` or `write` are typically great for testing.
# Note that you usually need a connection to the app to run
# the action. If you don't already have one, you can create a new one at:
# https://zapier.com/app/assets/connections
# List connections for an app.
npx zapier-sdk list-connections gmail
# Or only list the ones you own.
npx zapier-sdk list-connections gmail --owner me
# Or just grab the first one.
npx zapier-sdk find-first-connection gmail --owner me
# Make any API request to an app using your connection.
npx zapier-sdk curl "https://gmail.googleapis.com/gmail/v1/users/me/labels" --connection 123
全局选项
这些选项可用于所有命令:
| 选项 | 短 | 描述 |
|---|---|---|
--version | -V | 显示版本号 |
--help | -h | 显示命令帮助 |
--stability <level> | 使用哪个稳定层的SDK / CLI界面:稳定、beta、实验。也可以使用ZAPIER_STABILITY环境变量(默认:stable)进行设置。 | |
--credentials <token> | 身份验证令牌。 | |
--credentials-client-id <id> | 用于身份验证的OAuth客户端ID。 | |
--credentials-client-secret <secret> | 用于身份验证的OAuth客户端密钥。 | |
--credentials-base-url <url> | 覆盖身份验证基URL。 | |
--debug | 启用调试日志。 | |
--base-url <url> | Zapier API端点的基础URL。 | |
--tracking-base-url <url> | Zapier跟踪端点的基础URL。 | |
--max-network-retries <count> | 速率限制和服务器错误响应的最大重试次数(默认:3)。 | |
--max-network-retry-delay-seconds <seconds> | 网络重试之间的最大延迟(以秒为单位)(默认:60)。 | |
--max-concurrent-requests <count> | 最大并发HTTP请求数(默认:200,最大值:10000)。 | |
--approval-timeout-seconds <seconds> | 批准轮询超时(以秒为单位)。默认值:600(10分钟)。 | |
--max-approval-retries | 在放弃之前,每个请求的最大顺序审批轮数(每个门控策略一个)。默认值:2。 | |
--approval-mode | 手动审批的审批流程行为。“poll”创建批准,在浏览器中打开它,轮询直到解决,然后重试原始请求。“throw”创建手动审批,并抛出带有审批URL的ZapierApprovalError,以便调用者可以处理它。服务器创建的自动模式审批总是轮询,直到它们到达终端状态,并在审批时重试原始请求,即使该选项为“throw”。 “disabled”在不创建审批的情况下,对需要审批的响应抛出ZapierApprovalError。解析顺序是:显式选项,然后是ZAPIER_APPROVAL_MODE,然后是默认行为(轮询交互式TTY,否则抛出)。 | |
--open-auto-mode-approvals-in-browser | 默认情况下,自动模式审批不会在浏览器中打开。启用此选项以打开审批URL并查看审批过程。解析顺序是:explicit option,然后是ZAPIER_OPEN_AUTO_MODE_APPROVALS_IN_BROWSER,然后是false。 | |
--correlation-id <id> | 请求跟踪的关联ID。设置时,作为 zapier-correlation-id 每个出站请求的头。返回到ZAPIER_CORRELATION_ID环境变量。 | |
--causation-id <id> | 请求跟踪的原因ID。设置时,作为 zapier-causation-id 每个出站请求的头。返回到ZAPIER_CAUSATION_ID环境变量。 | |
--can-include-shared-connections | 允许列出共享连接。 | |
--can-include-shared-tables | 允许列出共享表。 | |
--can-delete-tables | 允许删除表。 | |
--json | 输出原始JSON而不是格式化的结果 |
可用命令
CLI会自动从SDK注册表生成命令。所有SDK功能都可以作为CLI命令使用串大小写命名。
布尔标志是状态切换,不接受值:pass --flag 启用或省略标志以使用默认值。禁用标志与省略单独的禁用标志不同(例如: --disabled). 布尔标志后的值(--flag false)作为额外参数被拒绝。
账户
您的Zapier用户帐户,即SDK登录时使用的帐户。用这个来确认是谁。
get-profile
获取当前用户的配置文件信息
用法:
npx zapier-sdk get-profile
login
登录Zapier访问您的帐户
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
--name | string | ❌ | - - - - - - | - - - - - - | 使用此名称激活存储的凭据。如果不存在,使用该名称创建新的凭据;交互式登录首先要求确认。 |
--timeout | string | ❌ | - - - - - - | - - - - - - | 登录超时时间(以秒为单位)(默认:300) |
--use-approvals | boolean | ❌ | - - - - - - | - - - - - - | 要求对使用这些凭据执行的操作进行批准 |
--non-interactive | boolean | ❌ | - - - - - - | - - - - - - | 跳过交互式提示。尽可能使用默认值;错误,而不是在需要输入时提示。在CI、管道输出或TTY检测不可靠的环境中非常有用。 |
--headless | boolean | ❌ | - - - - - - | - - - - - - | 在没有浏览器的机器上登录时使用。打印要在其他地方打开的登录链接,然后接受粘贴的环回调URL。 |
--callback-url | string | ❌ | - - - - - - | - - - - - - | 从浏览器中使用最后的OAuth回调URL恢复挂起的非交互式登录。 |
用法:
npx zapier-sdk login [--name] [--timeout] [--use-approvals] [--non-interactive] [--headless] [--callback-url]
logout
注销您的Zapier帐户
用法:
npx zapier-sdk logout
signup
设置Zapier帐户访问权限和SDK凭证
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
--timeout | string | ❌ | - - - - - - | - - - - - - | 注册超时(以秒为单位)(默认:300) |
--use-approvals | boolean | ❌ | - - - - - - | - - - - - - | 要求对使用这些凭据执行的操作进行批准 |
--non-interactive | boolean | ❌ | - - - - - - | - - - - - - | 跳过交互式提示。尽可能使用默认值;错误,而不是在需要输入时提示。在CI、管道输出或TTY检测不可靠的环境中非常有用。 |
--headless | boolean | ❌ | - - - - - - | - - - - - - | 在没有浏览器的机器上注册时使用。打印要在其他地方打开的注册链接,然后接受粘贴的环回调URL。 |
--callback-url | string | ❌ | - - - - - - | - - - - - - | 从浏览器中使用最终的OAuth回调URL恢复未完成的非交互式注册。 |
用法:
npx zapier-sdk signup [--timeout] [--use-approvals] [--non-interactive] [--headless] [--callback-url]
行动
动作是应用程序可以做的事情,比如发送电子邮件或创建联系人。使用这些工具来查找应用程序的操作,查看它们需要什么输入,并直接在Zap之外运行它们。
create-action-run
启动操作运行并返回其ID,而无需等待结果。操作的运行是异步的:这将立即返回一个运行ID,并且 getActionRun 获取结果。当您想要开始工作并稍后收集它时,请使用这一对(多次运行,将ID交给另一个进程,在重新启动时幸存下来)。 runAction 是启动运行并等待其结果的单调用形式。
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 应用程序代码段(例如,‘github’),实现名称(例如,‘SlackCLIAPI’),或版本号(例如,‘[email protected]’) |
<action-type> | string | ✅ | - - - - - - | read, read_bulk, write, run, search, search_or_write, search_and_write, filter | 与动作定义的类型匹配的动作类型 |
<action> | string | ✅ | - - - - - - | - - - - - - | 操作键(例如,send_message或find_row) |
--connection | string, number | ❌ | - - - - - - | - - - - - - | 连接别名或连接ID (UUID或正整数)。如果操作需要连接进行身份验证并与服务交互,则需要。与连接映射中的键匹配的字符串将根据它进行解析;否则直接作为连接ID使用。 |
--inputs | object | ❌ | - - - - - - | - - - - - - | 输入操作的参数 |
--page | string | ❌ | - - - - - - | - - - - - - | 要为批量读取操作获取的页。通过 next_page 返回之前的运行以获取以下页面。 |
--callback-url | string | ❌ | - - - - - - | - - - - - - | URL Zapier张贴完成运行,所以你不需要投票。必须使用HTTPS并解析到公共主机,因此本地接收方需要隧道。身体匹配什么? getActionRun 的回报。验证 Zapier-Callback-Signature 头,并期望相同的运行到达不止一次。 |
--idempotency-key | string | ❌ | - - - - - - | - - - - - - | 使重试运行安全的键。在72小时内使用相同键的另一次运行返回原始运行,而不是开始一个新的运行,即使它的输入不同,所以每次不同的运行使用一个新的键。经过分页的运行伴随着从该密钥和该页派生的密钥发送,因此一个密钥覆盖每个页面,重新尝试一个页面会重播该页的运行。 |
用法:
npx zapier-sdk create-action-run <app> <action-type> <action> [--connection] [--inputs] [--page] [--callback-url] [--idempotency-key]
get-action
获取有关特定操作的详细信息
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 应用程序代码段(例如,‘github’),实现名称(例如,‘SlackCLIAPI’),或版本号(例如,‘[email protected]’) |
<action-type> | string | ✅ | - - - - - - | read, read_bulk, write, run, search, search_or_write, search_and_write, filter | 与动作定义的类型匹配的动作类型 |
<action> | string | ✅ | - - - - - - | - - - - - - | 操作键(例如,send_message或find_row) |
用法:
npx zapier-sdk get-action <app> <action-type> <action>
get-action-input-fields-schema
获取操作输入字段的JSON Schema表示形式。返回一个JSON Schema对象,该对象描述操作输入参数的结构、类型和验证规则。
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 应用程序键(例如,‘SlackCLIAPI’或‘github’之类的蛞蝓)以获取输入模式 |
<action-type> | string | ✅ | - - - - - - | read, read_bulk, write, run, search, search_or_write, search_and_write, filter | 与动作定义的类型匹配的动作类型 |
<action> | string | ✅ | - - - - - - | - - - - - - | 获取输入模式的操作键 |
--connection | string, number | ❌ | - - - - - - | - - - - - - | 连接别名或连接ID (UUID或正整数)。与连接映射中的键匹配的字符串将根据它进行解析;否则直接作为连接ID使用。与connectionId互斥。 |
--inputs | object | ❌ | - - - - - - | - - - - - - | 可能影响模式的当前输入值(例如,当字段依赖于其他字段值时) |
用法:
npx zapier-sdk get-action-input-fields-schema <app> <action-type> <action> [--connection] [--inputs]
get-action-run
开始运行的操作的当前状态 createActionRun。这是一个立即返回的时间点读取:Zapier尚未完成执行的运行返回状态 waiting,因此再次调用以检查结果。 runAction 开始运行并在一次调用中等待其结果。结果将在创建运行后存储7天。
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<run> | string | ✅ | - - - - - - | - - - - - - | 返回的操作运行ID createActionRun |
用法:
npx zapier-sdk get-action-run <run>
list-action-input-field-choices
获取动态下拉输入字段的可用选项
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 应用程序代码段(例如,‘github’),实现名称(例如,‘SlackCLIAPI’),或版本号(例如,‘[email protected]’) |
<action-type> | string | ✅ | - - - - - - | read, read_bulk, write, run, search, search_or_write, search_and_write, filter | 与动作定义的类型匹配的动作类型 |
<action> | string | ✅ | - - - - - - | - - - - - - | 操作键(例如,send_message或find_row) |
<input-field> | string | ✅ | - - - - - - | - - - - - - | 获取选项的输入字段键 |
--connection | string, number | ❌ | - - - - - - | - - - - - - | 连接别名或连接ID (UUID或正整数)。与连接映射中的键匹配的字符串将根据它进行解析;否则直接作为连接ID使用。与connectionId互斥。 |
--inputs | object | ❌ | - - - - - - | - - - - - - | 可能影响可用选项的当前输入值 |
--page | number | ❌ | - - - - - - | - - - - - - | 分页结果的页码 |
--page-size | number | ❌ | - - - - - - | - - - - - - | 每页的选择数 |
--max-items | number | ❌ | - - - - - - | - - - - - - | 在所有页面中返回的最大项目总数 |
--cursor | string | ❌ | - - - - - - | - - - - - - | 起始光标 |
用法:
npx zapier-sdk list-action-input-field-choices <app> <action-type> <action> <input-field> [--connection] [--inputs] [--page] [--page-size] [--max-items] [--cursor]
list-action-input-fields
获取特定操作所需的输入字段
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 应用程序代码段(例如,‘github’),实现名称(例如,‘SlackCLIAPI’),或版本号(例如,‘[email protected]’) |
<action-type> | string | ✅ | - - - - - - | read, read_bulk, write, run, search, search_or_write, search_and_write, filter | 与动作定义的类型匹配的动作类型 |
<action> | string | ✅ | - - - - - - | - - - - - - | 操作键(例如,send_message或find_row) |
--connection | string, number | ❌ | - - - - - - | - - - - - - | 连接别名或连接ID (UUID或正整数)。与连接映射中的键匹配的字符串将根据它进行解析;否则直接作为连接ID使用。与connectionId互斥。 |
--inputs | object | ❌ | - - - - - - | - - - - - - | 可能影响可用字段的当前输入值 |
--page-size | number | ❌ | - - - - - - | - - - - - - | 每页输入字段的数量 |
--max-items | number | ❌ | - - - - - - | - - - - - - | 在所有页面中返回的最大项目总数 |
--cursor | string | ❌ | - - - - - - | - - - - - - | 起始光标 |
用法:
npx zapier-sdk list-action-input-fields <app> <action-type> <action> [--connection] [--inputs] [--page-size] [--max-items] [--cursor]
list-actions
列出特定应用程序的所有操作
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 要列出的操作的应用键(例如,‘SlackCLIAPI’或‘github’之类的slug) |
--action-type | string | ❌ | - - - - - - | read, read_bulk, write, run, search, search_or_write, search_and_write, filter | 按类型筛选操作 |
--page-size | number | ❌ | - - - - - - | - - - - - - | 每页的操作数 |
--max-items | number | ❌ | - - - - - - | - - - - - - | 在所有页面中返回的最大项目总数 |
--cursor | string | ❌ | - - - - - - | - - - - - - | 起始光标 |
用法:
npx zapier-sdk list-actions <app> [--action-type] [--page-size] [--max-items] [--cursor]
run-action
使用给定的输入执行一个操作并等待其结果。每个结果页都包含meta.id中的操作运行ID。
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 应用程序代码段(例如,‘github’),实现名称(例如,‘SlackCLIAPI’),或版本号(例如,‘[email protected]’) |
<action-type> | string | ✅ | - - - - - - | read, read_bulk, write, run, search, search_or_write, search_and_write, filter | 与动作定义的类型匹配的动作类型 |
<action> | string | ✅ | - - - - - - | - - - - - - | 操作键(例如,send_message或find_row) |
--connection | string, number | ❌ | - - - - - - | - - - - - - | 连接别名或连接ID (UUID或正整数)。与连接映射中的键匹配的字符串将根据它进行解析;否则直接作为连接ID使用。与connectionId互斥。 |
--inputs | object | ❌ | - - - - - - | - - - - - - | 输入操作的参数 |
--timeout-seconds | number | ❌ | - - - - - - | - - - - - - | 等待动作完成的最大时间(以秒为单位)(默认:180) |
--idempotency-key | string | ❌ | - - - - - - | - - - - - - | 使重试运行安全的键。在72小时内使用相同键的另一次运行返回原始运行,而不是开始一个新的运行,即使它的输入不同,所以每次不同的运行使用一个新的键。经过分页的运行伴随着从该密钥和该页派生的密钥发送,因此一个密钥覆盖每个页面,重新尝试一个页面会重播该页的运行。 |
--page-size | number | ❌ | - - - - - - | - - - - - - | 每页的结果数 |
--max-items | number | ❌ | - - - - - - | - - - - - - | 在所有页面中返回的最大项目总数 |
--cursor | string | ❌ | - - - - - - | - - - - - - | 起始光标 |
用法:
npx zapier-sdk run-action <app> <action-type> <action> [--connection] [--inputs] [--timeout-seconds] [--idempotency-key] [--page-size] [--max-items] [--cursor]
应用程序
应用程序是一种与Zapier连接的网络服务,就像Gmail或Slack一样。使用这些键来查找应用程序和其他方法用来引用它们的键。
get-app
获取特定应用程序的详细信息
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
<app> | string | ✅ | - - - - - - | - - - - - - | 应用程序代码段(例如,‘github’),实现名称(例如,‘SlackCLIAPI’),或版本号(例如,‘[email protected]’) |
用法:
npx zapier-sdk get-app <app>
list-apps
列出所有可选过滤的可用应用程序
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
--search | string | ❌ | - - - - - - | - - - - - - | 搜索词过滤应用程序的名称 |
--page-size | number | ❌ | - - - - - - | - - - - - - | 每页的应用程序数。上游API可能会对此加以限制,并拒绝超过其限制的值。 |
--apps | array | ❌ | - - - - - - | - - - - - - | 通过应用键过滤应用程序(例如,‘SlackCLIAPI’或‘github’) |
--max-items | number | ❌ | - - - - - - | - - - - - - | 在所有页面中返回的最大项目总数 |
--cursor | string | ❌ | - - - - - - | - - - - - - | 起始光标 |
用法:
npx zapier-sdk list-apps [--search] [--page-size] [--apps] [--max-items] [--cursor]
客户端凭证
SDK客户端凭证是一个客户端ID和客户端密钥,用于向Zapier SDK验证您的代码,与验证应用程序的连接分开。使用这些来创建、列出和撤销它们。
create-client-credentials
为经过身份验证的用户创建新的客户端凭据
选项:
| 选项 | 类型 | 要求 | 默认的 | 可能的值 | 描述 |
|---|---|---|---|---|---|
| ' < |