Tester un webhook Twilio en local
Valider un handler Twilio (SMS ou appel entrant) sans envoyer de vrais messages payants : c'est possible. Génère une requête Twilio signée (X-Twilio-Signature, HMAC-SHA1) au format form-urlencoded, édite les paramètres (From, To, Body) et envoie-la à ton serveur local.
Vérifier la signature côté serveur
const twilio = require('twilio');
const valid = twilio.validateRequest(
process.env.TWILIO_AUTH_TOKEN,
req.headers['x-twilio-signature'],
fullUrl, // doit correspondre à l'URL cible utilisée ci-dessus
req.body // paramètres POST
);Pour recevoir un vrai webhook Twilio sur ta machine, pointe le numéro vers ton tunnel Relay.
Questions fréquentes
Comment tester un SMS Twilio entrant en local ?
Choisis l'event 'Incoming SMS', renseigne ton Auth Token et l'URL exacte de ton handler (la signature Twilio dépend de l'URL), puis envoie. Le header X-Twilio-Signature est calculé en HMAC-SHA1 sur l'URL + paramètres triés, comme Twilio le fait.
Pourquoi dois-je fournir l'URL cible ?
La signature Twilio inclut l'URL complète du webhook dans le calcul HMAC. Sans la bonne URL, la signature ne sera pas valide côté serveur. C'est pourquoi le champ URL cible est obligatoire pour Twilio.
Le format est-il bien form-urlencoded ?
Oui. Contrairement à Stripe ou GitHub (JSON), Twilio envoie du application/x-www-form-urlencoded. Le générateur produit le bon Content-Type et encode les paramètres correctement.
Twilio est-il inclus dans le plan gratuit ?
Twilio fait partie des presets premium, disponibles avec le plan Pro à 14,90 €/mois.