Sign inGet Started

Migracja Verify z Twilio

Ta strona mapuje Twilio Verify v2 na Bird Verify. Postępuj zgodnie z głównym przewodnikiem migracji po kolei i użyj tych mapowań w krokach 1 i 3.
Service to element bez odpowiednika. Twilio adresuje POST https://verify.twilio.com/v2/Services/{ServiceSid}/Verifications, a Service przechowuje długość kodu, TTL, lookup, obsługę linii stacjonarnych i limity żądań. Bird adresuje POST /v1/verify/verifications bez segmentu service: te ustawienia należą do Twojego obszaru roboczego, a nie do identyfikatora w ścieżce. Wiele Service ID nie ma odpowiednika w ramach jednego obszaru roboczego i nie można wybrać konfiguracji per żądanie.

Przekaż to swojemu agentowi

Wklej to do Claude Code, Cursor lub Codex. Agent przetwarza tę stronę w kontekście Twojego repozytorium, korzystając z dowolnej powierzchni Bird, którą już ma: serwera MCP, jeśli jest podłączony, lub CLI, jeśli jest zainstalowany i zalogowany.
Przykład kodu
I am moving a phone verification integration from Twilio Verify to Bird Verify. Route through it with me.
1. Check what you already have before setting anything up. If Bird's MCP server is connected, use its tools. If the Bird CLI is installed and signed in, use that. Either one is enough, and every step below is an action you take with whichever you have. Only if neither is present, follow https://bird.com/docs/ai/set-up-your-agent.md to set one up and sign me in. Every Bird docs page serves Markdown at its own URL with `.md` appended, so fetch that rather than the HTML.
2. Read https://bird.com/docs/guides/verify/migrate/twilio.md for the create, check and status mapping, and https://bird.com/docs/guides/verify/migrate.md for the order the steps go in.
3. Find and list my Twilio Verify usage in this repository before you change anything: the Verifications and VerificationCheck call sites, every Service SID they name and what each Service is configured with, and any place I read a verification status. Bird has no Service segment and no per-request configuration selection, so tell me if I use more than one Service and what differs between them.
4. Tell me early which of these I depend on. Bird Verify has no voice channel and no silent or network-based authentication. It generates the code itself and never returns it, so I cannot supply my own. It accepts `options.language` but no per-request template or message body. Bird can use an existing SMS Sender ID or a connected WhatsApp number with an approved authentication template, configured per channel or country rather than per request; tell me whether my current sender can be kept. Twilio's Service holds code length, TTL, lookup, landline handling and rate limits; on Bird those belong to the workspace rather than to an ID in the path, so tell me which of my Service settings have no home.
5. Configure my channels and destinations following https://bird.com/docs/guides/verify/countries.md and https://bird.com/docs/guides/verify/senders.md. While you are there, disable every country I do not actually verify into. An enabled destination I never send to is not reach, it is exposure to SMS pumping, so ask me which countries I serve rather than leaving the defaults.
6. Port the create and check calls using the mapping tables on the provider page, and move my status handling to Bird's events: https://bird.com/docs/guides/verify/sending-verifications.md and https://bird.com/docs/guides/verify/events.md.
7. Cut over at the create call, not all at once, because a code issued by Twilio Verify cannot be checked by Bird and a code issued by Bird cannot be checked by Twilio Verify. From the moment I say go, send every NEW verification to Bird, and keep routing each check to whichever provider issued that verification. Keep both paths live for one full code lifetime plus margin, then retire the old one. Tell me how you will decide which provider issued a given verification before you write any of it.
8. Test before any real traffic. Bird Verify has no simulated recipients, so do not look for a sandbox: the thing worth testing is the code arriving. Run the integration against a phone number and a mailbox I control, on each channel I enabled, and show me what arrived on each one.
9. Stop and ask me wherever a step needs a decision. Do not start routing new verifications to Bird until I have seen those test results and replied with the words cut over to Bird. Retiring the Twilio Verify path is a separate step: ask me again and wait for me to reply with the words retire the Twilio Verify path, and do not retire it while any code it issued could still be checked. A reply that agrees without naming what it is authorising is not authorisation. Finish by telling me what is left that only a person can do.

Zmapuj wywołanie create

Co robiTwilio VerifyBird
OdbiorcaToto.phone_number lub to.email
KanałChanneloptions.channels, w przeciwnym razie skonfigurowana kolejność dla kraju
Długość koduService CodeLengthoptions.code_length, w przeciwnym razie domyślna wartość obszaru roboczego
Czas życia koduService TTLustawienie Duration obszaru roboczego
Limit próbService max attemptsustawienie Maximum Retries obszaru roboczego
KorelacjaTagsmetadata
Bezpieczne ponowienia(brak)nagłówek Idempotency-Key
Własny kod weryfikacyjnyCustomCodebrak odpowiednika
LokalizacjaLocaleoptions.language
Treść wiadomościTemplateSid, CustomFriendlyName, ChannelConfigurationbrak odpowiednika per żądanie; wybierz zatwierdzony szablon uwierzytelniania WhatsApp w konfiguracji Verify
Limity per kluczRateLimitsstałe ograniczenia platformy
Kontrola oszustwRiskCheck, Fraud Guard, DeviceIpnieudostępnione w API
Autouzupełnianie SMSAppHashbrak odpowiednika
PSD2Amount, Payeebrak odpowiednika
Kanały również nie pokrywają się jeden do jednego:
Twilio ChannelBird
smssms
emailemail
whatsappwhatsapp
callbrak odpowiednika
sna, autobrak odpowiednika
rcsbrak odpowiednika
(brak)telegram, dostępne dla numerów zarejestrowanych w Telegramie
Przepływ, który używa call jako awaryjnego kanału dostępności, lub sna i auto jako ścieżki bez kodu, wymaga przemyślenia, zanim ustalisz datę. Wszystko inne to zmiana kolejności kanałów na stronie Countries, a nie parametr per żądanie.

Zmapuj wywołanie check

POST /v2/Services/{ServiceSid}/VerificationCheck w Twilio przyjmuje To lub VerificationSid oraz Code. POST /v1/verify/verifications/check w Bird przyjmuje tylko odbiorcę i kod, więc ścieżka VerificationSid znika wraz z kolumną, w której go przechowywałeś. Podaj dokładnie ten zestaw adresów, z którym utworzyłeś weryfikację.
Kształt odpowiedzi różni się tam, gdzie ma to największe znaczenie:
  • Twilio odpowiada polem status; Bird odpowiada wartością boolean. success: true oznacza zweryfikowano. success: false zawiera reason o wartości incorrect_code, expired lub attempts_exhausted, a także attempts_remaining, więc wartość "how many tries left", którą być może liczysz samodzielnie, wraca w odpowiedzi.
  • Oba przechodzą do 404, gdy weryfikacja jest wyczerpana. Twilio usuwa weryfikację po zatwierdzeniu, wygaśnięciu lub wyczerpaniu prób; Bird przestaje przyjmować sprawdzenia w każdym stanie końcowym. Zapisz pierwszą ostateczną odpowiedź zamiast ponownie sprawdzać.

Przetłumacz statusy

Status TwilioStatus BirdPowód Bird
pendingpendingbrak
approvedverifiedbrak
max_attempts_reachedfailedattempts_exhausted
expiredexpiredttl_elapsed
canceledbrak odpowiednika: weryfikacji nie można anulować
Nie ma endpointu update, więc wzorzec Twilio polegający na wymuszaniu statusu approved lub canceled z backendu nie ma odpowiednika. Weryfikacja kończy się, gdy użytkownik ją potwierdzi, wyczerpie próby lub pozwoli jej wygasnąć.

Przenieś strumień zdarzeń

Twilio Verify raportuje aktywność przez Event Streams: sink plus subskrypcja zdarzeń statusu weryfikacji, konfigurowane poza API Verify. Bird używa tego samego mechanizmu webhooków co każdy inny kanał. Zasubskrybuj endpoint na żądane typy zdarzeń, podając każdy z nich: verify.verification.created, verify.verification.verified i verify.verification.failed dla zdarzeń sesji oraz verify.attempt.sent, verify.attempt.delivered i verify.attempt.undelivered dla poszczególnych dostaw kodów weryfikacyjnych. Nie ma symbolu wieloznacznego, który je zastępuje. Zweryfikuj podpis zgodnie ze Standard Webhooks. Zobacz zdarzenia Verify.
Te dwie osie mają znaczenie przy przenoszeniu dashboardów. Zdarzenia statusu weryfikacji w Twilio odpowiadają zdarzeniom sesji w Bird, a zdarzenia prób w Bird dodają wyniki dostarczenia per wysyłkę w tej samej sesji, w tym wysyłki wynikające z ponowienia lub przełączenia kanału.

Przełączenie

Reguła przełączenia w głównym przewodniku to ta, wokół której planujesz: kodu wydanego przez Twilio nie można zweryfikować przez Bird, więc przełącz się na wywołaniu create i kieruj sprawdzenia do tego dostawcy, który wydał weryfikację, aż ostatni kod Twilio wygaśnie.
Sprawdź nadawcę przed przełączeniem. Możesz wybrać Bird Verify lub Authifly, użyć zweryfikowanej domeny e-mail, wybrać istniejący Sender ID SMS lub powiązać podłączony numer WhatsApp z zatwierdzonym szablonem uwierzytelniania. Bird nie wybiera spośród puli nadawców. Jeśli zachowasz Sender ID SMS jako domyślną konfigurację, Verify przełącza się na Bird Verify tylko tam, gdzie ten ID nie kwalifikuje się dla danego miejsca docelowego; jawny wybór kraju tego nie robi. Sprawdź, co użytkownicy widzą w każdym kraju, i zaktualizuj skrypty obsługi tam, gdzie to się zmienia.

Następne kroki