你是否希望让扣子(Coze)智能机器人自动帮你创建Zoom会议、填入参会人邮箱、同步日历并发送通知,而无需手动打开Zoom网页反复复制粘贴链接和时间?很多人觉得这项操作很复杂,但拆开来看,其实只是几个标准步骤的依次串联。
核心逻辑并不复杂:通过Zoom提供的API接口,让扣子机器人自动完成会议的创建与通知的分发。接下来,我们逐步分解具体操作。
获取Zoom开发者账号与API凭证
首先,你需要注册一个Zoom开发者账号。访问 zoom.us/developer ,点击“Create App”,选择“JWT”类型。这里需要特别提醒:必须申请JWT类型的应用,因为OAuth方式不支持创建会议。填写应用名称和联系邮箱,提交后进入应用详情页面。
在“App Credentials”区域,你会看到API Key和API Secret。这两项是最核心的凭证,后续配置扣子Bot时,需要利用它们动态生成JWT Token。请务必妥善保管,一旦丢失或泄露,你的账户可能被他人未授权调用。
此外,有一个关键前提:JWT应用必须经过Zoom企业管理员审批通过。普通免费账户无法启用这一步,否则后续所有API调用都会返回401错误,连调试的机会都没有。
在扣子中配置Zoom API连接
进入Coze Bot编辑页面,左侧找到“Bot Settings”,进入“Plugins”,点击“+ Add Plugin”,搜索“HTTP Request”并启用。
新建一个自定义动作(Custom Action),命名为“create_zoom_meeting”。协议选择HTTPS,方法选择POST,URL填写:https://api.zoom.us/v2/users/me/meetings。
在Headers中,添加:Authorization: Bearer {jwt_token}。Body类型选择JSON,内容可以先留空,后续由用户输入动态填充。
这一步的关键是:不能跳过认证头,否则Zoom服务器会直接拒绝请求,连错误详情都不会返回。
生成有效的JWT Token供扣子调用
JWT Token并不是固定字符串,它需要在每次调用前,用API Key、API Secret和当前时间戳实时生成。
两种方式供参考:
方法一:Python脚本本地生成(推荐调试阶段使用)
安装pyjwt库,运行脚本,传入Key和Secret,输出一个带有效期的Token(有效期≤60分钟),然后复制到扣子HTTP插件的Header中。
方法二:在Coze工作流中嵌入JavaScript代码块(生产环境首选)
利用内置的crypto-js和Date.now(),按照Zoom要求构造payload(包含iss、exp、iat字段),然后进行Base64编码签名,输出token变量供后续HTTP请求调用。
需要了解的是:exp必须比iat大,且不超过60分钟,超时即失效。因此在扣子里绝不能硬编码token。
构建会议参数并触发创建流程
第一步:从用户消息中提取关键字段。使用“Extract Entities”插件,识别时间、主题、持续时长、参会人邮箱列表。
第二步:将提取结果组装为JSON Body。必须包含:topic、type(值为2,代表预定会议)、start_time(ISO 8601格式,例如2024-06-15T14:30:00Z)、duration(单位分钟)、timezone(例如Asia/Shanghai)。
第三步:如果用户提供了多个邮箱,需要在settings字段中添加registrants字段,每个registrant对象包含email和first_name。这一步很多人会忽略,但漏掉registrants,邀请邮件就不会自动发出。
第四步:执行已配置好的“create_zoom_meeting”HTTP动作。成功后,响应会返回meeting_id、join_url、start_url等字段。
自动推送会议通知给参会人
调用Zoom API成功后,从响应体中提取join_url和start_time,拼接成结构化的通知文案。例如:“【线上会议】{topic},时间:{start_time},点击加入:{join_url}”。
使用Coze内置的“Send Message”动作,目标可以选择“User who triggered bot”或“Email List”(需提前校验邮箱格式)。发送渠道选“Email”或“IM”(如企微/钉钉Webhook)。
最后一点提醒:Zoom本身并不代发通知邮件,必须由扣子完成最后一公里的触达。否则,参会人收不到提醒,整个自动化流程就会功亏一篑。
