Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://firecrawl-mog-search-exclude-include-domains.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Vérifiez que votre intégration de webhook fonctionne avant de la déployer en production. Cette page explique comment recevoir des webhooks sur votre machine locale et comment diagnostiquer les échecs courants de livraison et de vérification.

Développement local

Comme les webhooks nécessitent une URL accessible publiquement, vous devez exposer votre serveur local à Internet pendant le développement.

Utiliser Cloudflare Tunnels

Cloudflare Tunnels offre un moyen gratuit d’exposer votre serveur local sans ouvrir de ports sur le pare-feu :
cloudflared tunnel --url localhost:3000
Vous obtiendrez une URL publique de la forme https://abc123.trycloudflare.com. Utilisez-la dans la configuration de votre webhook :
{
  "url": "https://abc123.trycloudflare.com/webhook"
}

Résolution des problèmes

Les webhooks n’arrivent pas

  • Point de terminaison inaccessible - Vérifiez que votre serveur est accessible publiquement et que les pare-feu autorisent les connexions entrantes
  • Utilisation de HTTP - Les URL de webhook doivent utiliser HTTPS
  • Mauvais types d’événements - Vérifiez le filtre events dans la configuration de votre webhook
  • Erreurs de délai d’attente - Assurez-vous que votre point de terminaison répond en moins de 10 secondes

Échec de la vérification de la signature

La cause la plus fréquente est l’utilisation du corps JSON parsé au lieu du corps brut de la requête. Une autre cause possible est l’utilisation d’un secret incorrect ; vérifiez donc que le vôtre correspond à la valeur indiquée dans les paramètres de votre compte.
// ❌ Incorrect — utilisation du corps parsé
const signature = crypto
  .createHmac('sha256', secret)
  .update(JSON.stringify(req.body))
  .digest('hex');

// ✅ Correct — utilisation du corps brut
app.use('/webhook', express.raw({ type: 'application/json' }));
app.post('/webhook', (req, res) => {
  const signature = crypto
    .createHmac('sha256', secret)
    .update(req.body) // Buffer brut
    .digest('hex');
});