Webhooks
Les webhooks sont un moyen d’être notifié lorsqu’un événement se produit sur votre blog.
- Un blog peut avoir jusqu’à 5 webhooks
- Chaque webhook peut s’abonner à un ou plusieurs événements
cache.single{ path: string }cache.templatescache.allRequête du webhook
Lorsqu’un événement se produit, une requête POST est envoyée à l’URL du webhook. Le corps de la
requête est un objet JSON contenant les propriétés suivantes. La propriété data correspond aux
données de l’événement. Consultez le tableau ci-dessus pour connaître la structure des données de chaque événement.
{
"subdomain": "my-subdomain",
"timestamp": 1645208678,
"event": "cache.single",
"data": {}
}Sécurité
Chaque requête de webhook inclut un en-tête X-Signature contenant une signature HMAC-SHA256
du corps de la requête, signée avec la clé secrète de votre webhook. Vous trouverez ce secret dans la Console,
dans les paramètres de votre webhook.
Pour vérifier la signature :
- Hachez le corps de la requête avec HMAC-SHA256 en utilisant la clé secrète de votre webhook.
- Comparez le hachage obtenu avec la valeur de l’en-tête
X-Signature.
const signature = request.headers['x-signature'];
const expected = crypto
.createHmac('sha256', env.HB_WEBHOOK_SECRET)
.update(JSON.stringify(request.body))
.digest('hex');
if (signature !== expected) {
return 'Unauthorized';
}Réponse et nouvelles tentatives
Nous attendons un code de réponse HTTP 200 de votre serveur pour marquer le webhook comme réussi. Si nous recevons un autre code de réponse ou si nous ne parvenons pas à joindre vos serveurs, nous réessaierons d’envoyer le webhook 3 fois de plus après
- 1 minute
- 5 minutes
- 30 minutes
Si toutes les tentatives échouent, nous marquerons ce webhook comme échoué et ne l’enverrons plus automatiquement.