Een Twilio-webhook lokaal testen
Een Twilio-handler (sms of inkomende oproep) valideren zonder echte betaalde berichten te versturen: het kan. Genereer een gesigneerde Twilio-request (X-Twilio-Signature, HMAC-SHA1) in form-urlencoded-formaat, bewerk de parameters (From, To, Body) en stuur die naar je lokale server.
De signatuur server-side verifiëren
const twilio = require('twilio');
const valid = twilio.validateRequest(
process.env.TWILIO_AUTH_TOKEN,
req.headers['x-twilio-signature'],
fullUrl, // moet overeenkomen met de hierboven gebruikte doel-URL
req.body // POST-parameters
);Om een echte Twilio-webhook op je machine te ontvangen, wijs je het nummer naar je Relay-tunnel.
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.
Veelgestelde vragen
Hoe test ik een inkomende Twilio-sms lokaal?
Kies het event 'Incoming SMS', vul je Auth Token en de exacte URL van je handler in (de Twilio-signatuur hangt af van de URL) en verstuur. De X-Twilio-Signature-header wordt in HMAC-SHA1 berekend op de URL + gesorteerde parameters, zoals Twilio dat doet.
Waarom moet ik de doel-URL opgeven?
De Twilio-signatuur neemt de volledige webhook-URL mee in de HMAC-berekening. Zonder de juiste URL is de signatuur niet geldig aan de serverkant. Daarom is het veld doel-URL verplicht voor Twilio.
Is het formaat echt form-urlencoded?
Ja. Anders dan Stripe of GitHub (JSON) stuurt Twilio application/x-www-form-urlencoded. De generator produceert het juiste Content-Type en encodeert de parameters correct.
Is Twilio inbegrepen in het gratis plan?
Twilio behoort tot de premium presets, beschikbaar met het Pro-plan voor 14,90 €/maand.