Testare un webhook Twilio in locale
Validare un handler Twilio (SMS o chiamata in entrata) senza inviare veri messaggi a pagamento: si può. Genera una richiesta Twilio firmata (X-Twilio-Signature, HMAC-SHA1) in formato form-urlencoded, modifica i parametri (From, To, Body) e inviala al tuo server locale.
Verificare la firma lato server
const twilio = require('twilio');
const valid = twilio.validateRequest(
process.env.TWILIO_AUTH_TOKEN,
req.headers['x-twilio-signature'],
fullUrl, // deve corrispondere all'URL di destinazione usato qui sopra
req.body // parametri POST
);Per ricevere un vero webhook Twilio sulla tua macchina, punta il numero verso il tuo tunnel Relay.
Signature coming back invalid? This page signs. The Twilio signature validator does the opposite: paste the signature Twilio actually sent and it tells you which URL variant matches — which is to say, which line of your code is lying.
Domande frequenti
Come testare un SMS Twilio in entrata in locale?
Scegli l'evento 'Incoming SMS', inserisci il tuo Auth Token e l'URL esatto del tuo handler (la firma Twilio dipende dall'URL), poi invia. L'header X-Twilio-Signature viene calcolato in HMAC-SHA1 sull'URL + parametri ordinati, come fa Twilio.
Perché devo fornire l'URL di destinazione?
La firma Twilio include l'URL completo del webhook nel calcolo HMAC. Senza l'URL corretto, la firma non sarà valida lato server. Per questo il campo URL di destinazione è obbligatorio per Twilio.
Il formato è davvero form-urlencoded?
Sì. A differenza di Stripe o GitHub (JSON), Twilio invia application/x-www-form-urlencoded. Il generatore produce il Content-Type corretto e codifica i parametri correttamente.
Twilio è incluso nel piano gratuito?
Twilio fa parte dei preset premium, disponibili con il piano Pro a 14,90 €/mese.