/setup-zoom-webhooks
Référence contextualisée pour la livraison d'événements Zoom via HTTP. Préférez d'abord les workflow skills, puis utilisez ce fichier pour vérifier les détails de souscription et de livraison.
Prérequis
- App Zoom avec Event Subscriptions activée
- Endpoint HTTPS pour recevoir les webhooks
- Token secret webhook pour la vérification
Besoin d'aide avec l'authentification ? Consultez la skill zoom-oauth pour la configuration OAuth.
Démarrage rapide
// Gestionnaire webhook Express.js
const crypto = require('crypto');
// Capturer le corps brut pour la vérification de signature (éviter la re-sérialisation JSON).
app.use(require('express').json({
verify: (req, _res, buf) => { req.rawBody = buf; }
}));
app.post('/webhook', (req, res) => {
// Vérifier la signature du webhook
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');
}
// Gérer l'événement
const { event, payload } = req.body;
console.log(`Received: ${event}`);
res.status(200).send();
});
Événements courants
| Événement | Description |
|---|---|
meeting.started |
La réunion a démarré |
meeting.ended |
La réunion a pris fin |
meeting.participant_joined |
Un participant a rejoint la réunion |
recording.completed |
L'enregistrement cloud est prêt |
user.created |
Un nouvel utilisateur a été ajouté |
Références détaillées
- references/events.md - Référence complète des types d'événements
- references/verification.md - Validation d'URL webhook
- references/subscriptions.md - API des souscriptions d'événements
Dépannage
- RUNBOOK.md - Vérifications préliminaires de 5 minutes avant un débogage approfondi
- troubleshooting/common-issues.md - Vérification de signature, retries, validation d'URL
Dépôts d'exemples
Officiels (par Zoom)
| Type | Dépôt | Stars |
|---|---|---|
| Node.js | webhook-sample | 34 |
| PostgreSQL | webhook-to-postgres | 5 |
| Go/Fiber | Go-Webhooks | - |
| Header Auth | zoom-webhook-verification-headers | - |
Communauté
| Langage | Dépôt | Description |
|---|---|---|
| Laravel | binary-cats/laravel-webhooks | Gestionnaire webhook Laravel |
| AWS Lambda | splunk/zoom-webhook-to-hec | Serverless vers Splunk HEC |
| Node.js | Will4950/zoom-webhook-listener | Redirecteur webhook |
| Express+Redis | ojusave/eventSubscriptionPlayground | Socket.io + Redis |
Exemples multi-langages (par tanchunsiong)
Liste complète : Consultez general/references/community-repos.md
Ressources
- Documentation webhooks : https://developers.zoom.us/docs/api/webhooks/
- Référence événements : https://developers.zoom.us/docs/api/rest/reference/zoom-api/events/
- Forum développeurs : https://devforum.zoom.us/
Variables d'environnement
- Consultez references/environment-variables.md pour les clés
.envstandardisées et où trouver chaque valeur.