बाहरी इंटीग्रेशन की जांच करना

कपड़ों की ऑनलाइन दुकान "आरामदायक अलमारी" ने एक Webhook (जब कंटेंट में बदलाव होता है तो किसी बाहरी प्रोग्राम को सूचना भेजने वाला इंटीग्रेशन) सेट कर रखा है, जो हर नए उत्पाद के पंजीकृत होने पर उसकी जानकारी अपने आंतरिक सूचना बॉट को अपने आप भेज देता है। लेकिन एक दिन ज़िम्मेदार व्यक्ति कहता है कि "आजकल नए उत्पाद की सूचनाएं बिल्कुल नहीं आ रहीं।" सबसे पहले यह पता लगाना होगा कि सूचना सच में भेजी ही नहीं गई, या भेजी तो गई पर बॉट के पास से छूट गई।

Webhook एक बार बना देने के बाद अपने आप चलता रहता है, इसलिए सामान्य दिनों में इसकी चिंता करने की ज़रूरत नहीं होती। लेकिन सूचना पाने वाला बाहरी प्रोग्राम हमारी पहुंच से बाहर होता है, इसलिए कभी न कभी ऐसा दिन आता है जब वह कोई प्रतिक्रिया नहीं देता या कोई त्रुटि लौटा देता है। यह पृष्ठ बताता है कि सेट किए गए Webhook की सूचनाएं ठीक से जा रही हैं या नहीं यह कैसे जांचें, और असफल कॉल को ढूंढकर उसके कारण के अनुसार कैसे कार्रवाई करें। इन तरीकों को यहां स्थिति के अनुसार समझाया गया है।

Webhook क्या है, और इसे कैसे बनाएं, चालू-बंद करें व बदलें, यह Webhook में बताया गया है। यहां हम पहले से बनाए गए Webhook को चलाते हुए उसकी जांच करने पर ध्यान देते हैं।

कॉल इतिहास में क्या दर्ज होता है

Webhook जब भी किसी बाहरी प्रोग्राम को अनुरोध भेजता है, हर एक बार का रिकॉर्ड कॉल इतिहास में दर्ज होता है। हर रिकॉर्ड में ये जानकारी होती है:

  • कब भेजा गया, और उसे संसाधित होने में लगा समय
  • किस बदलाव के कारण भेजा गया (उदाहरण: उत्पाद का पंजीकरण)
  • किस पते पर भेजा गया
  • बाहरी प्रोग्राम द्वारा लौटाया गया प्रतिक्रिया कोड (एक परिणाम संख्या जो बताती है कि अनुरोध को कैसे संसाधित किया गया)
  • वह कॉल सफल रही या असफल

कॉल इतिहास दो परतों में होता है। पहले एक सूची होती है जो कॉल को समय के क्रम में दिखाती है, और सूची में से किसी एक कॉल को खोलने पर उस कॉल का विवरण दिखता है। विवरण में आप वह अनुरोध जो हमने वास्तव में भेजा और बाहरी प्रोग्राम द्वारा लौटाई गई प्रतिक्रिया, दोनों को ज्यों का त्यों देख सकते हैं।

Webhook सूची में नाम पर क्लिक करने पर विवरण स्क्रीन खुलती है, और ऊपर की कॉल लॉग टैब में यह सूची दिखती है। "आरामदायक अलमारी" के नए उत्पाद अलर्ट बॉट ने हर बार उत्पाद पंजीकृत होने पर जो रिकॉर्ड भेजे, वे इस तरह दिखते हैं:

Webhook विवरण का कॉल लॉग टैब। कॉल समय·कॉल परिणाम·इवेंट क्रिया·अवधि·अनुरोध ID कॉलम में दो सफल प्रतिक्रिया कोड और एक असफल प्रतिक्रिया कोड मिले-जुले दिखते हैं

सूची में हर पंक्ति पर कॉल समय, कॉल परिणाम (प्रतिक्रिया कोड), किस बदलाव ने इस कॉल को बुलाया (इवेंट क्रिया), लगा हुआ समय (अवधि), और उस कॉल को इंगित करने वाली अनुरोध ID दिखती है। किस पते पर भेजा और क्या लेन-देन हुआ, यह देखने के लिए पंक्ति पर क्लिक करके विवरण खोलना पड़ता है। परिणाम खाने से केवल सफल कॉल या केवल असफल कॉल छानकर भी देखी जा सकती हैं। अगर सूची पुरानी लगे तो ऊपर दाईं ओर के लॉग रीफ़्रेश करें से इसे दोबारा लोड कर सकते हैं।

रिकॉर्ड ज़्यादा समय तक नहीं रहते। सफल कॉल का रिकॉर्ड 1 घंटे बाद और असफल कॉल का रिकॉर्ड 3 दिन बाद मिट जाता है। असफल वाले को ज़्यादा समय तक रखा जाता है, क्योंकि बाद में कारण देखने का काम असफलता से ही निकलता है। इसीलिए "कल ठीक से गई सूचना" सूची में पहले ही न हो, ऐसा हो सकता है, और इसका मतलब यह नहीं है कि सूचना गई ही नहीं। भेजने का ब्यौरा ज़्यादा समय तक रखना हो, तो उसे पाने वाले प्रोग्राम में दर्ज करें।

सफलता और असफलता प्रतिक्रिया कोड से तय होती है। अगर प्रतिक्रिया कोड सामान्य सीमा में हो (आमतौर पर 200 और 300 की श्रेणी) तो उसे सफल, और इसके अलावा किसी संख्या पर असफल के रूप में दर्ज किया जाता है। अगर बाहरी प्रोग्राम ने कोई प्रतिक्रिया दी ही नहीं, या लौटाई गई प्रतिक्रिया बहुत बड़ी हो, तब भी वह कॉल असफल के रूप में दर्ज रहती है।

सूचनाएं ठीक से जा रही हैं या नहीं यह जांचना

ज़िम्मेदार व्यक्ति की बात सही है या नहीं यह जांचने के लिए, सबसे पहले देखें कि इस Webhook ने अब तक भेजी गई कॉल में से कितने प्रतिशत सफल रहीं। Webhook सूची में कॉल सफलता दर सीधे दिख जाती है।

  1. कपड़ों की दुकान वाले Space की सेटिंग्स में Webhook स्क्रीन खोलें।
  2. सूची में नए उत्पाद अलर्ट बॉट की पंक्ति में सफल कॉल (%) कॉलम देखें।

उदाहरण के लिए यह "66.67%" जैसा दिखता है। अगर यह 100% है तो अब तक भेजी गई सभी कॉल सफल रहीं, और ऐसे में चूक बॉट की ओर से हुई है। अगर यह 100% से कम है तो इसका मतलब है कि सूचना खुद ही जाते-जाते कभी रुकी है, इसलिए अगले भाग में उसका कारण ढूंढते हैं।

Webhook सूची। नाम·URL·स्थिति·सफल कॉल (%) कॉलम में "नए उत्पाद अलर्ट बॉट" Active स्थिति में और 66.67% कॉल सफलता दर के साथ दिखता है

अगर अब तक एक भी कॉल नहीं भेजी गई है, तो इसका मतलब सूचना असफल नहीं हुई, बल्कि भेजी ही नहीं गई। ऐसा तब होता है जब Webhook बंद हो (Inactive), या जिस शर्त पर इसे लगाया गया है उसके अनुरूप कोई बदलाव इस दौरान हुआ ही न हो। ऐसे में Webhook में जाकर जांचें कि यह चालू है या नहीं, और इसे किन बदलावों पर प्रतिक्रिया देने के लिए सेट किया गया है।

असफल कॉल का कारण ढूंढना

अगर कोई असफलता दिखे, तो उस एक कॉल को खोलकर देखें कि क्या गलत हुआ। विवरण में हमारे द्वारा भेजा गया अनुरोध और बाहरी प्रोग्राम द्वारा लौटाई गई प्रतिक्रिया, दोनों एक साथ दिखते हैं।

  1. नए उत्पाद अलर्ट बॉट की कॉल लॉग टैब में उस पंक्ति पर क्लिक करें जिसका परिणाम असफल है। उस कॉल का विवरण खुल जाता है।
  2. अनुरोध में देखें कि किस पते पर और क्या सामग्री भेजी गई।
  3. ऊपर की स्थिति में प्रतिक्रिया कोड, और प्रतिक्रिया में बाहरी प्रोग्राम द्वारा लौटाई गई सामग्री देखें। संसाधन · क्रिया में यह भी साथ दिखता है कि किस बदलाव ने इस कॉल को बुलाया।

Webhook कॉल लॉग विवरण। ऊपर कॉल का समय·अनुरोध ID·स्थिति·अवधि·संसाधन · क्रिया दिखते हैं, और नीचे अनुरोध तथा प्रतिक्रिया हेडर·बॉडी के रूप में साथ-साथ दिखते हैं

प्रतिक्रिया कोड और लौटाई गई सामग्री कारण बताते हैं। अगर प्रतिक्रिया कोड असफलता की सीमा में हो, तो इसका मतलब बाहरी प्रोग्राम ने अनुरोध तो प्राप्त किया पर उसे संसाधित करते समय असफल रहा, और ऐसे में अक्सर लौटाई गई सामग्री में कारण लिखा होता है। अगर कोई प्रतिक्रिया आई ही नहीं या पता नहीं मिला, तो हो सकता है कि भेजने का पता बदल गया हो या प्रोग्राम बंद पड़ा हो।

अगर आप इस कॉल को बाहरी प्रोग्राम के ज़िम्मेदार व्यक्ति को ज्यों का त्यों भेजना चाहते हैं, तो ऊपर दाईं ओर के cURL कॉपी करें से इस कॉल को दोबारा बनाने लायक रूप में कॉपी करके भेज सकते हैं। पूरा रिकॉर्ड फ़ाइल के रूप में देना हो तो .json डाउनलोड करें का उपयोग करें।

भेजे गए अनुरोध में वे हेडर भी शामिल होते हैं जो हमने साथ भेजे थे। उनमें से जिन्हें गुप्त मान के रूप में तय किया गया है (उदाहरण: बाहरी प्रोग्राम से जुड़ते समय इस्तेमाल होने वाला कुंजी मान), वे स्क्रीन पर तारांकन चिह्नों से छिपे दिखते हैं। मूल मान उजागर नहीं होता, इसलिए आप निश्चिंत होकर विवरण देख सकते हैं।

असफलता होने पर कार्रवाई करना

सबसे पहले एक बात जान लेना ज़रूरी है। असफल कॉल अपने आप दोबारा नहीं भेजी जाती। एक बार असफल हुई सूचना बस इतिहास में दर्ज रह जाती है, Webhook उसे खुद-ब-खुद दोबारा नहीं भेजता। इसीलिए कार्रवाई दो हिस्सों में बंटती है। एक, आगे की सूचनाएं ठीक से जाती रहें इसके लिए कारण को ठीक करना; और दूसरा, जो सूचना पहले ही असफल होकर बॉट से छूट गई उसे खुद संभालना।

विवरण में देखी गई बातों के आधार पर संभावित कारण और कार्रवाई इस प्रकार हैं:

विवरण में जो दिखता हैसंभावित कारणकार्रवाई
असफलता की सीमा वाला प्रतिक्रिया कोड और त्रुटि की सामग्रीबाहरी प्रोग्राम अनुरोध को संसाधित करते समय असफल रहालौटाई गई प्रतिक्रिया की सामग्री बाहरी प्रोग्राम के ज़िम्मेदार व्यक्ति को ज्यों का त्यों भेजें ताकि वे उसे ठीक करें
कोई प्रतिक्रिया नहीं आई या पता नहीं मिलाभेजने का पता बदल गया या प्रोग्राम बंद पड़ा हैजांचें कि पता सही है या नहीं, और बदल गया हो तो Webhook को संपादित करें
कॉल का रिकॉर्ड ही नहीं बनताWebhook बंद है (Inactive)Webhook को दोबारा चालू करें
असफल के रूप में दर्ज हुआ और लौटाई गई प्रतिक्रिया बहुत बड़ी हैबाहरी प्रोग्राम द्वारा लौटाई जाने वाली सामग्री बहुत बड़ी हैलौटाई जाने वाली सामग्री कम करने के लिए बाहरी प्रोग्राम की ओर से समायोजन करें

पता ठीक करने या Webhook को दोबारा चालू करने का तरीका Webhook में बताया गया है।

कारण ठीक कर देने पर भी, इस बीच असफल हुई सूचनाएं अपने आप दोबारा नहीं जातीं। हर असफल कॉल किस उत्पाद के पंजीकरण की थी, यह उस कॉल के विवरण में भेजी गई सामग्री से पता किया जा सकता है, इसलिए उन उत्पादों के बारे में बॉट के ज़िम्मेदार व्यक्ति को खुद सूचित करके छूटे हुए काम को पूरा करें।

आगे क्या करें

  • Webhook: Webhook क्या है, और इसे नया बनाने या चालू-बंद करने तथा पता व शर्तें बदलने का तरीका बताता है।
  • Webhook (API रेफ़रेंस): प्रोग्राम से कॉल की स्थिति और भेजने का इतिहास देखने के लिए इस्तेमाल होने वाले एंडपॉइंट को कवर करता है।