Testowanie webhooka Twilio lokalnie
Zwalidowanie handlera Twilio (SMS lub połączenie przychodzące) bez wysyłania prawdziwych, płatnych wiadomości — to możliwe. Wygeneruj żądanie Twilio podpisane (X-Twilio-Signature, HMAC-SHA1) w formacie form-urlencoded, edytuj parametry (From, To, Body) i wyślij je do swojego lokalnego serwera.
Zweryfikuj podpis po stronie serwera
const twilio = require('twilio');
const valid = twilio.validateRequest(
process.env.TWILIO_AUTH_TOKEN,
req.headers['x-twilio-signature'],
fullUrl, // musi odpowiadać URL docelowemu użytemu powyżej
req.body // parametry POST
);Aby odebrać prawdziwy webhook Twilio na swojej maszynie, skieruj numer na swój tunel 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.
Najczęstsze pytania
Jak przetestować przychodzący SMS Twilio lokalnie?
Wybierz event 'Incoming SMS', podaj swój Auth Token i dokładny URL swojego handlera (podpis Twilio zależy od URL), a następnie wyślij. Header X-Twilio-Signature jest obliczany w HMAC-SHA1 na URL + posortowanych parametrach, tak jak robi to Twilio.
Dlaczego muszę podać URL docelowy?
Podpis Twilio zawiera pełny URL webhooka w obliczeniu HMAC. Bez właściwego URL podpis nie będzie prawidłowy po stronie serwera. Dlatego pole URL docelowy jest obowiązkowe dla Twilio.
Czy format jest na pewno form-urlencoded?
Tak. W przeciwieństwie do Stripe czy GitHub (JSON), Twilio wysyła application/x-www-form-urlencoded. Generator tworzy właściwy Content-Type i poprawnie koduje parametry.
Czy Twilio jest w planie darmowym?
Nie: w Signerze wszyscy dostawcy, łącznie z Twilio, są dostępni za darmo. Pass na 7 dni (5 €) i Pro (9 €/miesiąc) dodają wyjaśnienia AI, 25 stałych adresów URL, 30-dniową historię i tunel Relay, który zwraca Twój lokalny TwiML do Twilio.