mcpField
S
setup-zoom-webhooks

setup-zoom-webhooks

github.com/anthropics開発33.6k2.1k 回インストール1 日前に更新
リポジトリ

setup-zoom-webhooks について

ZoomのHTTPイベント配信をWebhookで実装する開発者向けのリファレンススキルです。エンドポイントの前提条件、検証、サブスクリプション、代表的なイベントを扱います。

主な機能

  1. 01Webhookの前提条件
  2. 02イベント種別リファレンス
  3. 03エンドポイント検証ガイド
  4. 04イベントサブスクリプションの参考情報
  5. 05署名検証と再試行のトラブルシューティング

活用シーン

  1. 01ミーティング開始・終了通知の受信
  2. 02参加者の入室イベント処理
  3. 03録画完了時の後続処理の起動
  4. 04Zoomユーザー作成イベントへの対応

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/anthropics/knowledge-work-plugins --skill setup-zoom-webhooks

インストール後、Claude Code で/setup-zoom-webhooksを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

RUNBOOK.md
references/
environment-variables.md
events.md
signature-verification.md
subscriptions.md
verification.md
troubleshooting/
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新しいユーザーが追加されました

詳細なリファレンス

トラブルシューティング

サンプルリポジトリ

公式(Zoom 提供)
種類リポジトリスター数
Node.jswebhook-sample34
PostgreSQLwebhook-to-postgres5
Go/FiberGo-Webhooks-
ヘッダー認証zoom-webhook-verification-headers-
コミュニティ
言語リポジトリ説明
Laravelbinary-cats/laravel-webhooksLaravel の Webhook ハンドラー
AWS Lambdasplunk/zoom-webhook-to-hecSplunk HEC 向けのサーバーレス連携
Node.jsWill4950/zoom-webhook-listenerWebhook フォワーダー
Express+Redisojusave/eventSubscriptionPlaygroundSocket.io + Redis
複数言語のサンプル(tanchunsiong 提供)
言語リポジトリ
Node.jsZoom-Webhook-Signature-OAuth-and-REST-API-Development-Sample-In-NodeJS
C#Zoom-Webhook-Signature-OAuth-and-REST-API-Development-Sample-In-ASP.NET-Core-C-
JavaZoom-Webhook-Signature-OAuth-and-REST-API-Development-Sample-In-Java-Spring-Boot
PythonZoom-Webhook-Signature-OAuth-and-REST-API-Development-Sample-In-Python
PHPZoom-Webhook-Signature-OAuth-and-REST-API-Development-Sample-In-PHP

全リスト: general/references/community-repos.md を参照してください。

リソース

環境変数

コメント