कम्यूनिटी कनेक्टर में जोड़ी गई गड़बड़ियों और मैसेज को मैनेज करना

उपयोगकर्ताओं को अच्छा अनुभव देने के लिए, आपके कोड में गड़बड़ियों को ठीक से हैंडल किया जाना चाहिए. उपयोगकर्ताओं को ऐसी गड़बड़ी के मैसेज दिखाएं जिनमें समस्या हल करने के लिए ज़रूरी कार्रवाई करने के तरीके के बारे में बताया गया हो.

इस दस्तावेज़ में, कनेक्टर से जुड़ी गड़बड़ियों के बारे में बताया गया है. साथ ही, गड़बड़ी के मैसेज कैसे काम करते हैं और कनेक्टर से जुड़ी गड़बड़ियों को ठीक करने का तरीका भी बताया गया है.

जानकारी: JavaScript में अपवादों को मैनेज करने के बारे में ज़्यादा जानने के लिए, try...catch स्टेटमेंट देखें.

गड़बड़ियों के टाइप

कनेक्टर का इस्तेमाल करते समय, उपयोगकर्ता को मिलने वाली गड़बड़ियों के टाइप और उनकी वजहें आम तौर पर इन तीन कैटगरी में से किसी एक में आती हैं:

  1. कनेक्टर की इंटरनल गड़बड़ियां
  2. कनेक्टर से जुड़ी बाहरी गड़बड़ियां
  3. Looker Studio में आने वाली गड़बड़ियां

कनेक्टर की अंदरूनी और बाहरी गड़बड़ियों को कनेक्टर डेवलपर को ठीक करना चाहिए. ये गड़बड़ियां, डेवलपर के लिखे गए कोड की वजह से होती हैं.

कनेक्टर में कोई गड़बड़ी हुई

कनेक्टर को चलाने के दौरान, कनेक्टर से जुड़ी अंदरूनी गड़बड़ियां होती हैं. उदाहरण के लिए, अगर getData() को लागू करने के दौरान कोई कनेक्टर, एपीआई से मिले रिस्पॉन्स को पार्स नहीं कर पाता है. इन गड़बड़ियों का अनुमान लगाया जाना चाहिए. साथ ही, जहां लागू हो वहां उपयोगकर्ताओं को आसानी से समझ आने वाली जानकारी देकर, इन्हें ठीक किया जाना चाहिए.

कनेक्टर की इंटरनल गड़बड़ियों को ठीक करने के बारे में ज़्यादा जानने के लिए, कनेक्टर की गड़बड़ियों को ठीक करने के सबसे सही तरीके लेख पढ़ें.

कनेक्टर से जुड़ी बाहरी गड़बड़ी

कनेक्टर के चलने के बाद, कनेक्टर से जुड़ी बाहरी गड़बड़ियां होती हैं. उदाहरण के लिए, जब तीन फ़ील्ड के लिए किए गए getData() अनुरोध में सिर्फ़ दो फ़ील्ड का डेटा मिलता है. कनेक्टर ने अनुरोध पूरा कर लिया है, लेकिन यह Looker Studio के अनुरोध के मुताबिक नहीं है. अच्छी तरह से जांच करने पर, इन गड़बड़ियों को रोका जा सकता है.

कनेक्टर से जुड़ी बाहरी गड़बड़ियों को आम तौर पर, गड़बड़ी की जानकारी (अगर उपलब्ध हो) देखकर ठीक किया जा सकता है. साथ ही, समस्या का पता लगाने के लिए कोड को डीबग किया जा सकता है. अपने कनेक्टर को डीबग करने के बारे में ज़्यादा जानकारी के लिए, अपने कोड को डीबग करना लेख पढ़ें.

Looker Studio में गड़बड़ी

Looker Studio की गड़बड़ियां, आपके कनेक्टर कोड से जुड़ी नहीं होती हैं. उदाहरण के लिए, अगर कोई उपयोगकर्ता ऐसे डेटा सोर्स के साथ टाइम सीरीज़ चार्ट का इस्तेमाल करने की कोशिश करता है जिसमें तारीख/समय डाइमेंशन नहीं है.

अगर गड़बड़ी सीधे तौर पर कनेक्टर से जुड़ी नहीं है, तो कनेक्टर डेवलपर को कोई कार्रवाई करने की ज़रूरत नहीं है. उपयोगकर्ता, Looker Studio के सहायता केंद्र पर जाकर ज़्यादा मदद पा सकते हैं.

गड़बड़ी के मैसेज दिखना

एडमिन की स्थिति के आधार पर गड़बड़ी की जानकारी दिखाना

जब कोई कनेक्टर गड़बड़ी दिखाता है, तो Looker Studio, उपयोगकर्ता के एडमिन स्टेटस के आधार पर गड़बड़ी का मैसेज दिखाता है.

  • अगर उपयोगकर्ता एडमिन उपयोगकर्ता है, तो उसे पूरी जानकारी दिखेगी. इसमें गड़बड़ी का मैसेज, गड़बड़ी का टाइप, और स्टैक ट्रेस शामिल है.
  • अगर उपयोगकर्ता एडमिन नहीं है, तो उसे सिर्फ़ तब जानकारी दिखेगी, जब गड़बड़ी में उपयोगकर्ता के लिए आसान भाषा में मैसेज शामिल हो. एडमिन नहीं हैं, तो गड़बड़ी के मैसेज दिखाने के बारे में ज़्यादा जानने के लिए, उपयोगकर्ता को दिखने वाली गड़बड़ियां लेख पढ़ें.

उपयोगकर्ता को दिखने वाली गड़बड़ियां

डिफ़ॉल्ट रूप से, कनेक्टर एडमिन ही गड़बड़ी की जानकारी देख सकते हैं. इससे संवेदनशील जानकारी को गलती से ज़ाहिर होने से रोकने में मदद मिलती है. जैसे, स्टैक ट्रेस में मौजूद एपीआई पासकोड. एडमिन के अलावा अन्य उपयोगकर्ताओं को गड़बड़ी के मैसेज दिखाने के लिए, Looker Studio Apps Script सेवा से newUserError() का इस्तेमाल करें.

उदाहरण:

try {
  // API request that can be malformed.
  getDataFromAPI();
} catch (e) {
  DataStudioApp.createCommunityConnector()
      .newUserError()
      .setDebugText('Error fetching data from API. Exception details: ' + e)
      .setText('There was an error communicating with the service. Try again later, or file an issue if this error persists.')
      .throwException();

}

इस उदाहरण में, setText() उस टेक्स्ट को सेट करता है जो सभी उपयोगकर्ताओं को दिखेगा. वहीं, setDebugText() उस टेक्स्ट को सेट करता है जो सिर्फ़ एडमिन उपयोगकर्ताओं को दिखेगा.

कनेक्टर से जुड़ी गड़बड़ियों को ठीक करने के सबसे सही तरीके

आपको कनेक्टर कोड को लागू करने के दौरान, ज़्यादा से ज़्यादा गड़बड़ियों को पकड़ना और उन्हें ठीक करना चाहिए. उदाहरण के लिए, कुछ सामान्य कार्रवाइयों की वजह से गड़बड़ियां हो सकती हैं या अनचाही स्थिति पैदा हो सकती है. जैसे:

  • यूआरएल फ़ेच करने की कोशिश पूरी नहीं हुई (अस्थायी गड़बड़ियां, टाइमआउट)
  • अनुरोध की गई समयावधि के लिए कोई डेटा उपलब्ध नहीं है
  • एपीआई से मिले डेटा को पार्स या फ़ॉर्मैट नहीं किया जा सकता
  • अनुमति देने वाले टोकन रद्द कर दिए गए हैं

ऐसी गड़बड़ियों को ठीक करना जिनकी वजह से डेटा वापस पाया जा सकता है

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

गड़बड़ियों को पकड़ना और उन्हें थ्रो करना

ऐसी गड़बड़ियों का पता लगाया जाना चाहिए जिन्हें ठीक नहीं किया जा सकता. साथ ही, उन्हें फिर से थ्रो किया जाना चाहिए. फिर से थ्रो की गई गड़बड़ी से, लोगों को यह समझने में मदद मिलनी चाहिए कि गड़बड़ी क्यों हुई. अगर समस्या को ठीक किया जा सकता है, तो उसे ठीक करने के तरीके के बारे में जानकारी दें.

उपयोगकर्ताओं को दिखने वाली गड़बड़ियों को ठीक करने के बारे में जानें.

Stackdriver में गड़बड़ियों को लॉग करना

गड़बड़ियों और अन्य मैसेज को लॉग करने के लिए, Stackdriver का इस्तेमाल करें. इससे गड़बड़ियों को समझने, समस्याओं को डीबग करने, और ऐसे अपवादों का पता लगाने में मदद मिलती है जिन्हें हैंडल नहीं किया गया है.

Stackdriver Error Reporting के बारे में ज़्यादा जानने के लिए, स्क्रिप्ट के लिए अपवाद लॉगिंग चालू करने का तरीका जानने के लिए, और डीबग करने के मकसद से उपयोगकर्ताओं की पहचान सुरक्षित तरीके से करने का तरीका जानने के लिए, Stackdriver Logging का इस्तेमाल करना लेख पढ़ें.

अब काम नहीं करता: गड़बड़ी के सुरक्षित मैसेज के लिए, DS_USER: प्रीफ़िक्स का इस्तेमाल करें

एडमिन नहीं हैं ऐसे उपयोगकर्ताओं को आसानी से समझ में आने वाले गड़बड़ी के मैसेज दिखाने के लिए, गड़बड़ी के मैसेज में DS_USER: प्रीफ़िक्स शामिल करें. इस प्रीफ़िक्स का इस्तेमाल, गैर-एडमिन उपयोगकर्ताओं के लिए सुरक्षित मैसेज की पहचान करने के लिए किया जाता है. यह असल गड़बड़ी के मैसेज में शामिल नहीं होता.

यहां दिए गए उदाहरणों में, एक ऐसा मामला शामिल है जहां एडमिन नहीं होने वाले उपयोगकर्ताओं को गड़बड़ी का मैसेज दिखेगा. वहीं, दूसरे मामले में गड़बड़ी का मैसेज सिर्फ़ एडमिन उपयोगकर्ताओं को दिखेगा:

data-studio/errors.gs
// Admin and non-admin users will see the following error.
try {
  // Code that might fail.
} catch (e) {
  throw new Error('DS_USER:This will be shown to admin & non-admin.');
}

// Only admin users will see the following error.
try {
  // Code that might fail.
} catch (e) {
  throw new Error('This message will only be shown to admin users');
}