Twilio-Webhook lokal testen
Einen Twilio-Handler (SMS oder eingehender Anruf) zu validieren, ohne echte kostenpflichtige Nachrichten zu versenden: Das ist möglich. Generiere einen signierten Twilio-Request (X-Twilio-Signature, HMAC-SHA1) im form-urlencoded-Format, bearbeite die Parameter (From, To, Body) und sende ihn an deinen lokalen Server.
Signatur serverseitig prüfen
const twilio = require('twilio');
const valid = twilio.validateRequest(
process.env.TWILIO_AUTH_TOKEN,
req.headers['x-twilio-signature'],
fullUrl, // muss mit der oben verwendeten Ziel-URL übereinstimmen
req.body // POST-Parameter
);Um einen echten Twilio-Webhook auf deiner Maschine zu empfangen, richte die Nummer auf deinen Relay-Tunnel aus.
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.
Häufige Fragen
Wie teste ich eine eingehende Twilio-SMS lokal?
Wähle das Event 'Incoming SMS', trage deinen Auth Token und die exakte URL deines Handlers ein (die Twilio-Signatur hängt von der URL ab) und sende. Der X-Twilio-Signature-Header wird in HMAC-SHA1 über URL + sortierte Parameter berechnet, genau wie Twilio es macht.
Warum muss ich die Ziel-URL angeben?
Die Twilio-Signatur bezieht die vollständige Webhook-URL in die HMAC-Berechnung ein. Ohne die richtige URL ist die Signatur serverseitig nicht gültig. Deshalb ist das Feld Ziel-URL bei Twilio Pflicht.
Ist das Format wirklich form-urlencoded?
Ja. Anders als Stripe oder GitHub (JSON) sendet Twilio application/x-www-form-urlencoded. Der Generator erzeugt den richtigen Content-Type und kodiert die Parameter korrekt.
Ist Twilio im Gratis-Plan enthalten?
Twilio gehört zu den Premium-Presets, verfügbar mit dem Pro-Plan für 14,90 €/Monat.