如何在Zapier CLI应用中支持用户连接两个独立账号?
如何让Zapier应用支持连接两个独立账号
其实Zapier平台本身就支持用户添加多个同类型的认证账号,关键是要在你的应用的触发器/动作里提供选择不同账号的能力,具体可以这么操作:
1. 保留基础认证配置不变
你看到的authentication字段确实是单个配置,但这并不限制用户添加多个账号——用户在Zapier界面里点击「Connect a new account」就能添加多个同应用的认证实例。你的基础认证逻辑(比如OAuth2、API Key等)只需要处理单个账号的验证即可,不用修改核心的authentication结构。
2. 在触发器/动作中添加账号选择字段
如果需要让用户在同一个Zap里同时使用两个不同账号(比如从A账号读数据、写入B账号),你要在对应的触发器或动作的输入字段定义里,添加两个独立的认证账号选择器。这个字段会自动拉取用户已添加的所有该应用的认证账号,让用户自由选择对应场景要使用的账号。
举个代码示例:
const crossAccountCopyAction = { key: 'cross_account_copy', noun: 'Record', display: { label: 'Copy Record Between Accounts', description: 'Duplicate a record from one account to another' }, operation: { inputFields: [ // 第一个账号选择器:来源账号 { key: 'source_account', type: 'authentication', label: 'Source Account', required: true, auth: 'your_app_auth_key' // 关联你的应用认证配置key }, // 第二个账号选择器:目标账号 { key: 'target_account', type: 'authentication', label: 'Target Account', required: true, auth: 'your_app_auth_key' }, // 业务字段:要复制的记录ID { key: 'record_id', label: 'Record ID to Copy', required: true } ], perform: async (z, bundle) => { // 用来源账号的认证信息拉取数据 const sourceRecord = await z.request({ url: `https://api.your-app.com/records/${bundle.inputData.record_id}`, auth: bundle.authData.source_account }); // 用目标账号的认证信息写入数据 const createResult = await z.request({ url: 'https://api.your-app.com/records', method: 'POST', body: sourceRecord.data, auth: bundle.authData.target_account }); return createResult.data; } } };
3. 在业务逻辑中区分使用不同账号的认证数据
在perform函数里,你可以通过bundle.authData分别获取用户选择的两个账号的认证信息(比如token、API密钥等),分别传入对应的API请求即可。
额外小提示
如果你的需求是监听多个账号的事件,用户可以创建多个独立的Zap,每个Zap关联一个不同的账号,这样也能实现多账号的事件监控,不需要在单个触发器里做特殊处理。
内容的提问来源于stack exchange,提问作者dan-klasson
相关产品推荐
相关产品推荐

