WhatsApp सर्विस संदेश
सर्विस संदेश वह हर संदेश है जो पहले से स्वीकृत टेम्पलेट नहीं है, यानी वह मुक्त कंटेंट जो कोई व्यवसाय खुली बातचीत के भीतर भेजता है। POST /v1/whatsapp/messages नौ सर्विस-संदेश कंटेंट प्रकारों में से ठीक एक, या एक टेम्पलेट ले जाता है। यह पेज बताता है कि इन नौ प्रकारों में क्या समान है। हर प्रकार का अपना पेज उसकी वायर संरचना और उसकी अपनी सीमाएँ बताता है।
कंटेंट प्रकार
| प्रकार | फ़ील्ड | इसमें क्या जाता है | इसका उपयोग कब करें |
|---|---|---|---|
| सादा टेक्स्ट | text | 4096 अक्षरों तक का मुख्य टेक्स्ट, वैकल्पिक लिंक प्रीव्यू के साथ | जब आप बिना अटैचमेंट वाला संदेश भेज रहे हों |
| इमेज | image | एक सार्वजनिक इमेज URL और एक वैकल्पिक कैप्शन | जब आप कोई फ़ोटो या ग्राफ़िक भेज रहे हों |
| वीडियो | video | एक सार्वजनिक वीडियो URL और एक वैकल्पिक कैप्शन | जब आप कोई वीडियो क्लिप भेज रहे हों |
| ऑडियो | audio | एक सार्वजनिक ऑडियो URL, जिसे वैकल्पिक रूप से वॉइस नोट के रूप में दिखाया जा सकता है | आप वॉइस संदेश या ऑडियो क्लिप भेज रहे हैं |
| स्टिकर | sticker | एक सार्वजनिक WebP इमेज URL | आप स्टिकर भेज रहे हैं |
| दस्तावेज़ | document | एक सार्वजनिक फ़ाइल URL, एक वैकल्पिक कैप्शन और एक वैकल्पिक फ़ाइल नाम | आप PDF, स्प्रेडशीट या कोई अन्य फ़ाइल भेज रहे हैं |
| लोकेशन | location | अक्षांश और देशांतर, वैकल्पिक नाम और पते के साथ | आप कोई पिन भेज रहे हैं, जैसे पिकअप पॉइंट |
| संपर्क कार्ड | contact_cards | एक से पाँच संपर्क कार्ड, हर एक में नाम और कोई भी नंबर, ईमेल, वेबसाइट या पते | आप किसी का विवरण साझा कर रहे हैं, जैसे किसी सहकर्मी का नंबर |
| इंटरैक्टिव मैसेज | interactive | बॉडी टेक्स्ट के साथ एक बटन, मेनू, लिंक, कार्ड, या लोकेशन या संपर्क का अनुरोध | आप चाहते हैं कि प्राप्तकर्ता खुद जवाब टाइप करने के बजाय किसी विकल्प पर टैप करे |
एक अनुरोध में या तो template होता है या इन नौ फ़ील्ड में से ठीक एक। जिस अनुरोध में इनमें से कोई नहीं होता, या एक से ज़्यादा होते हैं, उसे 422 के साथ अस्वीकार कर दिया जाता है।
ग्राहक सेवा विंडो
सर्विस मैसेज, यानी ऊपर दिए नौ प्रकारों में से कोई भी, सिर्फ़ खुली 24 घंटे की ग्राहक सेवा विंडो के भीतर ही डिलीवर होता है। संपर्क आपके बिज़नेस नंबर पर मैसेज या कॉल करके यह विंडो खोलता है, और उसका हर अगला मैसेज विंडो को फिर से 24 घंटे पर सेट कर देता है।
बंद विंडो में भेजा गया सर्विस संदेश शुरुआत में ही अस्वीकार कर दिया जाता है: अनुरोध 422 E15044 WhatsAppServiceWindowClosed लौटाता है, और न कुछ बनाया जाता है न कोई शुल्क लगता है। इसके बजाय कोई स्वीकृत टेम्पलेट भेजें; वह विंडो की स्थिति चाहे जो हो, संपर्क तक पहुँचता है, और उनका जवाब विंडो को फिर से खोल देता है। अगर विंडो स्वीकार और डिस्पैच के बीच के पल में बंद हो जाती है, तो संदेश फिर भी विफल होता है, लेकिन एसिंक्रोनस रूप से: संदेश last_error पर service_window_expired के साथ failed तक पहुँचता है।
स्वीकार के समय की जाँच पूरी कोशिश पर आधारित है, गारंटी नहीं: यह गेट विफल होने पर खुला रहता है, इसलिए स्टोर में डेटा न मिलने या पढ़ने में त्रुटि होने पर भेजना रोका नहीं जाता, बल्कि आगे बढ़ जाता है। इसलिए 202 इस बात का सबूत नहीं है कि भेजते समय विंडो खुली थी; अंतिम संकेत संदेश की अपनी स्थिति है, स्वीकार की प्रतिक्रिया नहीं।
हर सर्विस संदेश के लिए from भी ज़रूरी है, यानी ऐसा नंबर जो आपके वर्कस्पेस का हो। Bird के मैनेज्ड नंबर इसे नहीं भेज सकते, इसलिए सर्विस संदेश भेजने से पहले आपको अपना नंबर कनेक्ट करना होगा; देखें फ़ोन नंबर सेटअप।
पूरे जीवनचक्र के लिए कस्टमर सर्विस विंडो देखें: विंडो कैसे खुलती है, उसे क्या रीसेट करता है, और उसे कैसे ट्रैक किया जाता है।
URL से मीडिया भेजना
image, video, audio, sticker और document सभी एक url लेते हैं, जो उस फ़ाइल की ओर इशारा करता है जिसे WhatsApp भेजते समय फ़ेच करता है; आपको Bird पर फ़ाइल अपलोड नहीं करनी होती। Bird स्वीकार के समय, कुछ भी कतार में डालने से पहले, URL का स्वरूप जाँचता है:
- खाली न हो और पार्स किया जा सके, उसमें होस्ट हो और कोई कच्चा स्पेस न हो
- स्कीम
httpsहो
http URL को स्वीकार के समय 422 के साथ अस्वीकार कर दिया जाता है, भले ही WhatsApp खुद उसे ठीक से फ़ेच कर लेता। यह Bird की नीति है, WhatsApp की लगाई गई सीमा नहीं।
Bird फ़ाइल का आकार, उसका MIME प्रकार या URL तक पहुँच संभव है या नहीं, यह नहीं जाँचता। WhatsApp संदेश डिस्पैच करने के बाद URL को खुद फ़ेच करता है, इसलिए साइन किया गया URL केवल अनुरोध भेजते समय नहीं, बल्कि उस पल के बाद भी मान्य रहना चाहिए; निजी या समाप्त URL तब विफल होता है जब WhatsApp उसे फ़ेच करने की कोशिश करता है। WhatsApp फ़ेच किए गए URL को लगभग 10 मिनट तक कैश भी करता है, इसलिए उस अवधि में वही URL दोबारा भेजने पर नया फ़ेच नहीं होता, बल्कि पहले फ़ेच का परिणाम ही दिया जाता है।
जब मीडिया विफल होता है
मीडिया भेजना किसी भी WhatsApp संदेश की तरह उसी एसिंक्रोनस रास्ते पर चलता है: Bird 202 लौटाता है और संदेश स्वीकार करता है, फिर डिस्पैच करते समय WhatsApp URL फ़ेच करता है। अगर वह फ़ेच विफल होता है, तो संदेश last_error पर media_rejected के साथ failed तक पहुँचता है, जो अंदर से Meta का 131053 है।
media_rejected एक व्यापक कोड है, जो बहुत बड़ी फ़ाइल, 404, DNS विफलता और गलत MIME टाइप, सभी पर समान रूप से लागू होता है। Bird इसे आगे नहीं बाँटता, इसलिए हर कारण के लिए अलग कोड की अपेक्षा न करें।
असिंक्रोनस रूप से विफल हुए मीडिया संदेश का भी शुल्क लगता है। शुल्क तब लगता है जब Bird स्वीकार किए गए संदेश को प्रोसेस करता है, यानी WhatsApp के URL फ़ेच करने से पहले। शुल्क लगने के बाद रिफ़ंड का कोई रास्ता नहीं है। इसलिए बजट इसी हिसाब से बनाएँ: जो संदेश बाद में media_rejected में विफल होता है, उसकी लागत डिलीवर हुए संदेश जितनी ही होती है।
संपर्क द्वारा भेजा गया संदेश पढ़ना
इनबाउंड संदेश में भी इन्हीं नौ आर्म में से एक होता है, इसलिए आप वही फ़ील्ड पढ़ते हैं जो संपर्क द्वारा इस्तेमाल किए गए टाइप से मेल खाता है। संपर्क कार्ड उसी contact_cards फ़ील्ड में पढ़े जाते हैं, चाहे संपर्क ने कार्ड साझा किया हो या आपने भेजा हो। WhatsApp संदेश प्राप्त करना में API के ज़रिए इनबाउंड संदेश पढ़ने, संपर्क द्वारा भेजा गया मीडिया फ़ेच करने और whatsapp.received वेबहुक की जानकारी है।
अगले कदम
- WhatsApp संदेश भेजना: अनुरोध का ढाँचा,
202मॉडल और सुरक्षित रूप से फिर से प्रयास करना - इंटरैक्टिव संदेश: छह टाइप, जिन पर प्राप्तकर्ता टैप कर सकता है
- WhatsApp संदेश प्राप्त करना: इनबाउंड संदेश, मीडिया और
whatsapp.receivedवेबहुक - WhatsApp टेम्पलेट: वे संदेश जिन्हें आप विंडो बंद होने के बाद भी भेज सकते हैं
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।