गड़बड़ियों को हैंडल करना

अलग-अलग लेयर में गड़बड़ियां हो सकती हैं. गड़बड़ी कहां होती है, इस आधार पर आपको अलग-अलग तरीक़ों से सूचना मिल सकती है.

ज़रूरी OAuth पैरामीटर मौजूद नहीं हैं

अगर Client_id या स्कोप जैसे ज़रूरी OAuth पैरामीटर सेट नहीं किए जाते, तो आपको अपने ब्राउज़र के JavaScript कंसोल में, गड़बड़ी का एक मैसेज दिखेगा. यह मैसेज नीचे दिया गया है.

JavaScript कंसोल से जुड़ी गड़बड़ियां

OAuth कॉन्फ़िगरेशन से जुड़ी गड़बड़ियां ठीक करना

कुछ गड़बड़ियों को ठीक करने के लिए, Google API कंसोल में बदलाव करने की ज़रूरत पड़ सकती है.

OAuth पैरामीटर की वैल्यू अमान्य है

अगर अमान्य वैल्यू को OAuth पैरामीटर, जैसे कि अमान्य क्लाइंट आईडी, स्कोप आइडेंटिफ़ायर या रिस्पॉन्स टाइप वैल्यू पर सेट किया जाता है, तो आपको OAuth की गड़बड़ी वाला पेज दिखेगा.

OAuth से जुड़ी गड़बड़ियां

OAuth गड़बड़ी के रिस्पॉन्स

OAuth के लिए गड़बड़ी का रिस्पॉन्स मिल सकता है. ऐसे में, आपका callback फ़ंक्शन, पैरामीटर के तौर पर गड़बड़ी के रिस्पॉन्स के साथ ट्रिगर होगा. OAuth गड़बड़ी के जवाब का एक उदाहरण नीचे दिया गया है.

  {
    "error":"access_denied"
  }

नीचे कुछ उदाहरण दिए गए हैं.

  1. उपयोगकर्ता, OAuth के लिए अनुरोध को अस्वीकार कर देता है.
  2. prompt=none पैरामीटर वाले OAuth अनुरोध के लिए, उपयोगकर्ता की पहले से पुष्टि नहीं हुई है. साथ ही, उसने अनुरोध किए गए दायरे के लिए सहमति को पहले से कॉन्फ़िगर नहीं किया है.

नीचे दिए गए उदाहरण में, OAuth रिस्पॉन्स में सफलता और गड़बड़ी को मैनेज करने का तरीका बताया गया है.

function myCallback(response) {
  if (response.error) {
    // Handle error response
    ... ...
  } else if (response.code) {
    // Handle success code response
    ... ...
  }
}

OAuth के अलावा दूसरी गड़बड़ियां

OAuth व्यवहार तय नहीं करता. ऐसा तब होता है, जब:

  1. पॉप-अप विंडो खुल नहीं रही है.
  2. OAuth जवाब वापस आने से पहले पॉप-अप विंडो बंद हो जाती है.

यह लाइब्रेरी इन गड़बड़ियों को कैप्चर करती है और सेट होने पर error_callback को ट्रिगर करती है. नीचे दिए गए गड़बड़ी के टाइप की जांच करना न भूलें. ऐसा नहीं करने पर, आपके कोड लॉजिक पर असर पड़ सकता है. ऐसा तब होगा, जब इस लाइब्रेरी में बाद में नए तरह की गड़बड़ियां काम करेंगी.

function myErrorCallback(err) {
  if (err.type == 'popup_failed_to_open') {
    // The popup window is failed to open
    ... ...
  } else if (err.type == 'popup_closed') {
    // The popup window is closed before an OAuth response is returned
    ... ...
  }
}

const client = google.accounts.oauth2.initCodeClient({
  client_id: 'YOUR_GOOGLE_CLIENT_ID',
  scope: 'https://www.googleapis.com/auth/calendar.readonly',
  ux_mode: 'popup',
  callback: myCallback,
  error_callback: myErrorCallback
});