关于 setup-zoom-webhooks
为 Zoom 应用开发者提供 HTTP 事件投递的 Webhook 参考,适用于订阅事件并接收通知的实现。内容涵盖端点前置条件、验证、订阅及常见事件。
主要功能
- 01Webhook 前置条件说明
- 02事件类型参考
- 03端点验证指南
- 04事件订阅参考
- 05签名验证与重试排查
适用场景
- 01接收会议开始和结束通知
- 02处理参与者加入会议事件
- 03在录制完成时触发后续处理
- 04响应 Zoom 用户创建事件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ anthropics/ knowledge-work-plugins --skill setup-zoom-webhooks安装后在 Claude Code 中输入/setup-zoom-webhooks确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
RUNBOOK.mdreferences/environment-variables.mdevents.mdsignature-verification.mdsubscriptions.mdverification.mdtroubleshooting/common-issues.md详细介绍
/setup-zoom-webhooks
通过 HTTP 进行 Zoom 事件投递的背景参考。请优先使用工作流类 Skill,然后再参阅本文件以了解验证、订阅和投递的详细信息。
前置条件
- 已启用 Event Subscriptions 的 Zoom 应用
- 用于接收 Webhook 的 HTTPS 端点
- 用于验证的 Webhook 密钥令牌
需要身份验证方面的帮助? 请参阅 zoom-oauth Skill 以了解 OAuth 设置。
快速开始
// Express.js webhook handler
const crypto = require('crypto');
// Capture raw body for signature verification (avoid re-serializing JSON).
app.use(require('express').json({
verify: (req, _res, buf) => { req.rawBody = buf; }
}));
app.post('/webhook', (req, res) => {
// Verify webhook signature
const signature = req.headers['x-zm-signature'];
const timestamp = req.headers['x-zm-request-timestamp'];
const body = req.rawBody ? req.rawBody.toString('utf8') : JSON.stringify(req.body);
const payload = `v0:${timestamp}:${body}`;
const hash = crypto.createHmac('sha256', WEBHOOK_SECRET)
.update(payload).digest('hex');
if (signature !== `v0=${hash}`) {
return res.status(401).send('Invalid signature');
}
// Handle event
const { event, payload } = req.body;
console.log(`Received: ${event}`);
res.status(200).send();
});
常见事件
| 事件 | 描述 |
|---|---|
meeting.started | 会议已开始 |
meeting.ended | 会议已结束 |
meeting.participant_joined | 参会者已加入会议 |
recording.completed | 云端录制已就绪 |
user.created | 已添加新用户 |
详细参考
- references/events.md - 完整的事件类型参考
- references/verification.md - Webhook URL 验证
- references/subscriptions.md - 事件订阅 API
故障排查
- RUNBOOK.md - 深入调试前的 5 分钟预检查
- troubleshooting/common-issues.md - 签名验证、重试、URL 验证
示例仓库
官方(由 Zoom 提供)
| 类型 | 仓库 | Stars |
|---|---|---|
| Node.js | webhook-sample | 34 |
| PostgreSQL | webhook-to-postgres | 5 |
| Go/Fiber | Go-Webhooks | - |
| Header Auth | zoom-webhook-verification-headers | - |
社区
| 语言 | 仓库 | 描述 |
|---|---|---|
| Laravel | binary-cats/laravel-webhooks | Laravel Webhook 处理器 |
| AWS Lambda | splunk/zoom-webhook-to-hec | 无服务器转发至 Splunk HEC |
| Node.js | Will4950/zoom-webhook-listener | Webhook 转发器 |
| Express+Redis | ojusave/eventSubscriptionPlayground | Socket.io + Redis |
多语言示例(由 tanchunsiong 提供)
完整列表:请参阅 general/references/community-repos.md
资源
- Webhook 文档:https://developers.zoom.us/docs/api/webhooks/
- 事件参考:https://developers.zoom.us/docs/api/rest/reference/zoom-api/events/
- 开发者论坛:https://devforum.zoom.us/
环境变量
- 请参阅 references/environment-variables.md,了解标准化的
.env键名以及每个值的获取位置。
评论
支持 Markdown