Twilio से Verify माइग्रेट करें
यह पेज Twilio Verify v2 को Bird Verify से मैप करता है। मुख्य माइग्रेशन गाइड को क्रम से फ़ॉलो करें और चरण 1 और 3 के लिए इन मैपिंग का उपयोग करें।
Service ही वह हिस्सा है जिसका कोई समकक्ष नहीं है। Twilio POST https://verify.twilio.com/v2/Services/{ServiceSid}/Verifications को संबोधित करता है, और Service में कोड की लंबाई, TTL, लुकअप, लैंडलाइन हैंडलिंग और दर सीमाएँ रहती हैं। Bird बिना किसी सर्विस सेगमेंट के POST /v1/verify/verifications को संबोधित करता है: ये सेटिंग पाथ में किसी ID की बजाय आपके वर्कस्पेस से जुड़ी होती हैं। एक वर्कस्पेस के भीतर कई Service ID का कोई समकक्ष नहीं है, और आप हर अनुरोध के लिए अलग कॉन्फ़िगरेशन नहीं चुन सकते।
इसे अपने एजेंट को सौंपें
इसे Claude Code, Cursor या Codex में पेस्ट करें। एजेंट आपकी अपनी रिपॉज़िटरी पर इस पेज के चरण पूरे करता है, और उसके पास पहले से मौजूद Bird इंटरफ़ेस का उपयोग करता है: अगर MCP सर्वर कनेक्ट है तो वह, और अगर CLI इंस्टॉल और साइन इन है तो वह।
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 silent or network-based authentication. It can read the code aloud in a voice call, but only in countries where I switch voice on, and always in English. 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.create कॉल को मैप करें
| यह क्या करता है | Twilio Verify | Bird |
|---|---|---|
| प्राप्तकर्ता | To | to.phone_number या to.email |
| चैनल | Channel | options.channels, अन्यथा देश के लिए कॉन्फ़िगर किया गया क्रम |
| कोड की लंबाई | Service CodeLength | options.code_length, अन्यथा वर्कस्पेस का डिफ़ॉल्ट |
| कोड की वैधता अवधि | Service TTL | वर्कस्पेस की Duration सेटिंग |
| प्रयास सीमा | Service की अधिकतम प्रयास संख्या | वर्कस्पेस की Maximum Retries सेटिंग |
| सहसंबंध | Tags | metadata |
| सुरक्षित रूप से फिर से प्रयास करना | (कोई नहीं) | Idempotency-Key हेडर |
| कस्टम सत्यापन कोड | CustomCode | कोई समकक्ष नहीं |
| स्थानीयकरण | Locale | options.language |
| संदेश की सामग्री | TemplateSid, CustomFriendlyName, ChannelConfiguration | प्रति अनुरोध कोई समकक्ष नहीं; Verify कॉन्फ़िगरेशन में स्वीकृत WhatsApp ऑथेंटिकेशन टेम्पलेट चुनें |
| प्रति कुंजी थ्रॉटल | RateLimits | प्लेटफ़ॉर्म की तय सुरक्षा सीमाएँ |
| धोखाधड़ी नियंत्रण | RiskCheck, Fraud Guard, DeviceIp | API पर उपलब्ध नहीं |
| SMS ऑटोफ़िल | AppHash | कोई समकक्ष नहीं |
| PSD2 | Amount, Payee | कोई समकक्ष नहीं |
चैनल भी एक-से-एक मेल नहीं खाते:
Twilio Channel | Bird |
|---|---|
sms | sms |
email | email |
whatsapp | whatsapp |
call | voice, हर देश के लिए अलग से चालू किया जाता है; कोड केवल अंग्रेज़ी में पढ़ता है |
sna, auto | कोई समकक्ष नहीं |
rcs | कोई समकक्ष नहीं |
| (कोई नहीं) | telegram, Telegram पर पंजीकृत नंबरों के लिए उपलब्ध |
अगर आपका फ़्लो बिना कोड वाले रास्ते के लिए sna और auto का उपयोग करता है, तो कोई तारीख तय करने से पहले उस पर दोबारा विचार करें। call फ़ॉलबैक तब पोर्ट हो जाता है जब उन देशों के लिए वॉइस चालू हो जाए जहाँ वह काम करता है। बाकी सब कुछ प्रति-अनुरोध पैरामीटर नहीं, बल्कि Countries पेज पर चैनल क्रम का बदलाव है।
जाँच कॉल को मैप करें
Twilio का POST /v2/Services/{ServiceSid}/VerificationCheck To या VerificationSid लेता है, साथ में Code भी। Bird का POST /v1/verify/verifications/check केवल प्राप्तकर्ता और कोड लेता है, इसलिए VerificationSid वाला रास्ता और उसे संग्रहीत करने वाला कॉलम, दोनों हट जाते हैं। ठीक वही पतों का सेट दें जिसके साथ आपने सत्यापन बनाया था।
परिणाम का ढांचा ठीक वहीं अलग है जहां यह सबसे ज़्यादा मायने रखता है:
- Twilio एक
statusफ़ील्ड के साथ जवाब देता है; Bird एक बूलियन मान के साथ जवाब देता है।success: trueका अर्थ है सत्यापित।success: falseमेंincorrect_code,expiredयाattempts_exhaustedकाreasonहोता है, साथ मेंattempts_remainingभी, इसलिए जो "how many tries left" संख्या आप शायद खुद गिन रहे हैं, वह प्रतिक्रिया में ही लौट आती है। - सत्यापन खत्म हो जाने पर दोनों
404पर जाते हैं। Twilio सत्यापन को तब हटा देता है जब वह स्वीकृत हो जाए, समाप्त हो जाए या उसके प्रयास खत्म हो जाएं; Bird किसी भी अंतिम स्थिति में जांच स्वीकार करना बंद कर देता है। दोबारा जांचने के बजाय पहला निर्णायक जवाब संग्रहीत करें।
स्टेटस का अनुवाद करें
| Twilio स्टेटस | Bird स्टेटस | Bird कारण |
|---|---|---|
pending | pending | कोई नहीं |
approved | verified | कोई नहीं |
max_attempts_reached | failed | attempts_exhausted |
expired | expired | ttl_elapsed |
canceled | कोई समकक्ष नहीं: सत्यापन को रद्द नहीं किया जा सकता |
कोई अपडेट एंडपॉइंट नहीं है, इसलिए अपने बैकएंड से किसी सत्यापन को approved या canceled पर ज़बरदस्ती सेट करने के Twilio पैटर्न का कोई समकक्ष नहीं है। सत्यापन तब समाप्त होता है जब उपयोगकर्ता उसे सत्यापित कर देता है, सारे प्रयास खत्म कर देता है, या उसकी अवधि समाप्त होने देता है।
इवेंट स्ट्रीम स्थानांतरित करें
Twilio Verify गतिविधि की जानकारी Event Streams के ज़रिए देता है: एक सिंक और सत्यापन स्टेटस इवेंट की सदस्यता, जिन्हें Verify API के बाहर कॉन्फ़िगर किया जाता है। Bird वही वेबहुक तंत्र इस्तेमाल करता है जो बाकी सभी चैनल करते हैं। आप जिन इवेंट प्रकारों को चाहते हैं, उनके लिए एक एंडपॉइंट सब्सक्राइब करें और हर प्रकार का नाम दें: सेशन इवेंट के लिए verify.verification.created, verify.verification.verified और verify.verification.failed, और अलग-अलग सत्यापन कोड डिलीवरी के लिए verify.attempt.sent, verify.attempt.delivered और verify.attempt.undelivered। इनकी जगह लेने वाला कोई वाइल्डकार्ड नहीं है। हस्ताक्षर को Standard Webhooks के अनुसार सत्यापित करें। Verify इवेंट देखें।
डैशबोर्ड पोर्ट करते समय ये दो अक्ष मायने रखते हैं। Twilio के सत्यापन स्टेटस इवेंट Bird के सेशन इवेंट से मेल खाते हैं। Bird के प्रयास इवेंट उसी सेशन पर हर भेजे गए संदेश का डिलीवरी परिणाम जोड़ते हैं, जिसमें दोबारा भेजने या चैनल फ़ेलओवर से हुए संदेश भी शामिल हैं।
कटओवर करें
मुख्य गाइड के कटओवर नियम के आधार पर योजना बनाएँ: Twilio द्वारा जारी कोड को Bird जाँच नहीं सकता। इसलिए create कॉल पर स्विच करें, और जब तक आख़िरी Twilio कोड की अवधि समाप्त न हो जाए, जाँच अनुरोधों को उसी प्रदाता को भेजते रहें जिसने सत्यापन जारी किया था।
कटओवर से पहले प्रेषक की जाँच करें। आप Bird Verify या Authifly चुन सकते हैं, अपना सत्यापित ईमेल डोमेन इस्तेमाल कर सकते हैं, कोई मौजूदा SMS Sender ID चुन सकते हैं, या अपने कनेक्टेड WhatsApp नंबर को किसी स्वीकृत ऑथेंटिकेशन टेम्पलेट के साथ जोड़ सकते हैं। Bird प्रेषकों के पूल में से चयन नहीं करता। अगर आप किसी SMS Sender ID को कॉन्फ़िगरेशन डिफ़ॉल्ट रखते हैं, तो Verify केवल उन्हीं गंतव्यों के लिए Bird Verify पर लौटता है जहाँ वह ID योग्य नहीं है। स्पष्ट रूप से चुने गए देश-विशिष्ट विकल्प पर ऐसा नहीं होता। हर देश में उपयोगकर्ताओं को क्या दिखता है, इसकी पुष्टि करें, और जहाँ यह बदलता है वहाँ सपोर्ट स्क्रिप्ट अपडेट करें।
अगले कदम
- सत्यापन भेजना: दोनों कॉल, स्टेटस और सीमाओं का पूरा अनुबंध
- देश कॉन्फ़िगरेशन: जहाँ चैनल क्रम और उपलब्धता सेट होती है
- प्रेषक और ब्रांडिंग: हर चैनल पर प्राप्तकर्ता को क्या दिखता है
- Verify इवेंट: वे इवेंट जिन पर आपका Event Streams कंज़्यूमर स्थानांतरित होता है
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।