Twilio वेबहुक की लोकल टेस्टिंग से आप SMS जवाब, वॉइस कॉलबैक और मैसेजिंग स्टेटस अपडेट अपने लोकल मशीन पर प्राप्त कर सकते हैं। Twilio वेबहुक को फ़ॉर्म-एन्कोडेड पेलोड वाले HTTP POST रिक्वेस्ट के रूप में भेजता है — डेवलपमेंट के दौरान इन्हें प्राप्त करने के लिए आपके localhost को एक सार्वजनिक HTTPS URL चाहिए।
Twilio कॉलबैक को सार्वजनिक URL क्यों चाहिए
जब कोई आपके Twilio नंबर पर SMS भेजता है या वॉइस कॉल पूरी करता है, तो Twilio इवेंट डेटा को आपके कॉन्फ़िगर किए गए वेबहुक URL पर POST करता है। http://localhost:3000/sms जैसे लोकल पते Twilio के इंफ्रास्ट्रक्चर से पहुँच में नहीं आते। एक localhost टनल एक सार्वजनिक HTTPS एंडपॉइंट से इस खाई को पाटता है।
लोकल पर टेस्ट करने योग्य Twilio वेबहुक प्रकार
- इनबाउंड SMS: जब कोई उपयोगकर्ता आपके Twilio नंबर पर टेक्स्ट संदेश भेजता है।
- SMS स्टेटस कॉलबैक: डिलीवरी पुष्टि (sent, delivered, failed)।
- वॉइस कॉलबैक: कॉल कनेक्ट होने या मेन्यू में प्रवेश पर TwiML रिक्वेस्ट।
- WhatsApp मैसेजिंग: WhatsApp Business API के इनबाउंड और स्टेटस वेबहुक।
- Conversations API: संदेश जोड़े जाने और प्रतिभागी इवेंट।
चरण-दर-चरण: Twilio वेबहुक लोकल टेस्टिंग
- Twilio वेबहुक रूट (उदाहरण के लिए
/sms/inbound) वाले अपने लोकल ऐप को शुरू करें। - सार्वजनिक HTTPS URL बनाने के लिए
npx portpreview 3000चलाएँ। - Twilio Console में, अपने फ़ोन नंबर की वेबहुक URL को टनल URL प्लस अपने रूट पाथ पर सेट करें।
- HTTP मेथड (आमतौर पर POST) कॉन्फ़िगर करें और सुनिश्चित करें कि content type आपके हैंडलर से मेल खाता है।
- वेबहुक ट्रिगर करने के लिए एक टेस्ट SMS भेजें या टेस्ट कॉल करें।
- कैप्चर की गई रिक्वेस्ट जाँचें — Twilio JSON नहीं, फ़ॉर्म-एन्कोडेड पेलोड भेजता है।
- सत्यापित करें कि आपका हैंडलर Twilio सिग्नेचर वैलिडेट करता है और मान्य TwiML या 2xx रिस्पॉन्स लौटाता है।
Twilio रिक्वेस्ट सिग्नेचर को लोकल पर सत्यापित करें
Twilio हर रिक्वेस्ट को एक X-Twilio-Signature हेडर से साइन करता है, जो आपके auth token का उपयोग करके पूरी URL और POST पैरामीटर से गणना किया जाता है। आपके हैंडलर को चाहिए:
- सिग्नेचर वैलिडेशन के लिए सटीक सार्वजनिक URL (टनल hostname सहित) का उपयोग करना।
- सभी POST पैरामीटर वैलिडेशन फ़ंक्शन में पास करना।
- अमान्य सिग्नेचर वाली रिक्वेस्ट को अस्वीकार करना, लोकल टेस्टिंग के दौरान भी।
जब आपकी टनल URL सेशनों के बीच बदले, तो Twilio Console की वेबहुक URL और अपनी वैलिडेशन URL दोनों को तदनुसार अपडेट करें।
Twilio-विशिष्ट डिबगिंग सुझाव
फ़ॉर्म-एन्कोडेड पेलोड
Stripe या GitHub के विपरीत, Twilio application/x-www-form-urlencoded डेटा भेजता है। सुनिश्चित करें कि आपका हैंडलर सिर्फ़ JSON नहीं, फ़ॉर्म बॉडी को भी सही ढंग से पार्स करे।
TwiML रिस्पॉन्स
वॉइस और SMS हैंडलर को मान्य TwiML XML लौटाना चाहिए। Twilio द्वारा डिलीवरी को विफल चिह्नित करने से पहले रिस्पॉन्स फ़ॉर्मेटिंग को लोकल पर टेस्ट करें।
टाइमआउट व्यवहार
अधिकांश वेबहुक के लिए Twilio 15 सेकंड के भीतर रिस्पॉन्स की अपेक्षा करता है। धीमे हैंडलर रीट्राई और डुप्लिकेट डिलीवरी का कारण बनते हैं — रीट्राई हैंडलिंग टेस्ट करने के लिए वेबहुक रीप्ले का उपयोग करें।
स्टेटस कॉलबैक चेन
SMS वर्कफ़्लो अक्सर इनबाउंड वेबहुक को स्टेटस कॉलबैक से जोड़ते हैं। अलग-अलग टनल रूट या पाथ कॉन्फ़िगर करके दोनों एंडपॉइंट को लोकल पर टेस्ट करें।
Twilio लोकल टेस्टिंग बनाम Twilio CLI
Twilio CLI twilio phone-numbers:update और लोकल टनल प्लगइन से इनबाउंड रिक्वेस्ट सिम्युलेट कर सकता है। रिक्वेस्ट कैप्चर वाला एक समर्पित localhost टनल आपको हर कॉलबैक की निरंतर दृश्यता, रीप्ले क्षमता और एक ऐसा वर्कफ़्लो देता है जो कई प्रोवाइडर पर स्केल करता है — सिर्फ़ Twilio ही नहीं।
सामान्य वेबहुक डिबगिंग पैटर्न के लिए, वेबहुक को लोकल पर कैसे डिबग करें पढ़ें।
एक ही टनल से Twilio और मल्टी-प्रोवाइडर वेबहुक टेस्टिंग के लिए PortPreview की वेटलिस्ट में शामिल हों।
