setup-zoom-webhooks について
ZoomのHTTPイベント配信をWebhookで実装する開発者向けのリファレンススキルです。エンドポイントの前提条件、検証、サブスクリプション、代表的なイベントを扱います。
主な機能
- 01Webhookの前提条件
- 02イベント種別リファレンス
- 03エンドポイント検証ガイド
- 04イベントサブスクリプションの参考情報
- 05署名検証と再試行のトラブルシューティング
活用シーン
- 01ミーティング開始・終了通知の受信
- 02参加者の入室イベント処理
- 03録画完了時の後続処理の起動
- 04Zoomユーザー作成イベントへの対応
インストール
コマンドをコピーしてターミナルで実行します。
$
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 イベント配信に関する背景資料です。まずワークフロースキルを使用し、検証、サブスクリプション、配信の詳細を確認する際にこのファイルを参照してください。
前提条件
- Event Subscriptions が有効になっている Zoom アプリ
- Webhook を受信する HTTPS エンドポイント
- 検証用の Webhook シークレットトークン
認証についてサポートが必要ですか? OAuth の設定については、zoom-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 提供)
| 種類 | リポジトリ | スター数 |
|---|---|---|
| Node.js | webhook-sample | 34 |
| PostgreSQL | webhook-to-postgres | 5 |
| Go/Fiber | Go-Webhooks | - |
| ヘッダー認証 | 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/
環境変数
- 標準化された
.envキーと各値の確認方法については、references/environment-variables.md を参照してください。
コメント
Markdown 対応