गड़बड़ियां ठीक करना

Gmail API, गड़बड़ी की जानकारी दो लेवल पर दिखाता है:

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

Gmail ऐप्लिकेशन को उन सभी गड़बड़ियों का पता लगाना चाहिए और उन्हें मैनेज करना चाहिए जो REST API का इस्तेमाल करते समय हो सकती हैं. इस गाइड में, एपीआई से जुड़ी कुछ खास गड़बड़ियों को ठीक करने का तरीका बताया गया है.

400 कोड वाली गड़बड़ी को ठीक करना: गलत अनुरोध

यह गड़बड़ी, आपके कोड में इन गड़बड़ियों की वजह से हो सकती है:

  • ज़रूरी फ़ील्ड या पैरामीटर की जानकारी नहीं दी गई है.
  • दी गई वैल्यू या दिए गए फ़ील्ड का कॉम्बिनेशन अमान्य है.
  • अटैचमेंट अमान्य है.

इस गड़बड़ी को JSON फ़ॉर्मैट में दिखाने का सैंपल यहां दिया गया है:

{
  "error": {
    "code": 400,
    "errors": [
      {
        "domain": "global",
        "location": "orderBy",
        "locationType": "parameter",
        "message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order.",
        "reason": "badRequest"
      }
    ],
    "message": "Sorting is not supported for queries with fullText terms. Results are always in descending relevance order."
  }
}

इस गड़बड़ी को ठीक करने के लिए, message फ़ील्ड की जांच करें और अपने कोड में उसी हिसाब से बदलाव करें.

401 कोड वाली गड़बड़ी को ठीक करना: क्रेडेंशियल अमान्य हैं

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

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "authError",
        "message": "Invalid Credentials",
        "locationType": "header",
        "location": "Authorization",
      }
    ],
    "code": 401,
    "message": "Invalid Credentials"
  }
}

इस गड़बड़ी को ठीक करने के लिए, लंबे समय तक चलने वाले रीफ़्रेश टोकन का इस्तेमाल करके ऐक्सेस टोकन को रीफ़्रेश करें. अगर क्लाइंट लाइब्रेरी का इस्तेमाल किया जा रहा है, तो टोकन रिफ़्रेश अपने-आप हो जाता है. अगर ऐसा नहीं होता है, तो उपयोगकर्ता को OAuth फ़्लो के ज़रिए निर्देश दें. इस बारे में ज़्यादा जानकारी के लिए, Gmail से अपने ऐप्लिकेशन को अनुमति देना लेख पढ़ें.

Gmail की सीमाओं के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं लेख पढ़ें.

403 कोड वाली गड़बड़ी को ठीक करना: इस्तेमाल की सीमा पार हो गई

गड़बड़ी 403 तब दिखता है, जब इस्तेमाल की सीमा पार हो गई हो या उपयोगकर्ता के पास सही अनुमतियां न हों. गड़बड़ी किस तरह की है, यह पता लगाने के लिए, रिटर्न किए गए JSON के reason फ़ील्ड का आकलन करें. यह गड़बड़ी इन स्थितियों में होती है:

  • एक दिन में अनुमति देने की तय सीमा पार हो गई है.
  • उपयोगकर्ताओं के लिए रेट की सीमा पार हो गई थी.
  • प्रोजेक्ट की दर की सीमा पार हो गई.
  • पुष्टि किए गए उपयोगकर्ता के डोमेन में आपके ऐप्लिकेशन का इस्तेमाल नहीं किया जा सकता.

Gmail की सीमाओं के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं लेख पढ़ें.

403 कोड वाली गड़बड़ी को ठीक करना: हर दिन के लिए तय की गई सीमा पार हो गई है

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

{
  "error": {
    "errors": [
      {
        "domain": "usageLimits",
        "reason": "dailyLimitExceeded",
        "message": "Daily Limit Exceeded"
      }
    ],
    "code": 403,
    "message": "Daily Limit Exceeded"
  }
}

इस गड़बड़ी को ठीक करने के लिए:

  1. Google API कंसोल पर जाएं
  2. अपना प्रोजेक्ट चुनें.
  3. कोटा टैब पर क्लिक करें
  4. ज़्यादा कोटा का अनुरोध करें. ज़्यादा जानकारी के लिए, ज़्यादा कोटा का अनुरोध करना लेख पढ़ें.

Gmail की सीमाओं के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं लेख पढ़ें.

403 कोड वाली गड़बड़ी को ठीक करना: उपयोगकर्ता की दर की सीमा पार हो गई है

userRateLimitExceeded गड़बड़ी का मतलब है कि हर उपयोगकर्ता के लिए तय की गई सीमा पूरी हो गई है. इस गड़बड़ी को JSON के तौर पर यहां दिखाया गया है:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "userRateLimitExceeded",
    "message": "User Rate Limit Exceeded"
   }
  ],
  "code": 403,
  "message": "User Rate Limit Exceeded"
 }
}

इस गड़बड़ी को ठीक करने के लिए, अपने ऐप्लिकेशन कोड को ऑप्टिमाइज़ करें, ताकि कम अनुरोध किए जा सकें या अनुरोधों को फिर से भेजा जा सके. अनुरोधों को फिर से करने के बारे में जानकारी पाने के लिए, गड़बड़ियों को ठीक करने के लिए, पूरे न हो पाने वाले अनुरोधों को फिर से करने का तरीका लेख पढ़ें.

Gmail की सीमाओं के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं लेख पढ़ें.

403 कोड वाली गड़बड़ी को ठीक करना: अनुरोध करने की सीमा पार हो गई

rateLimitExceeded गड़बड़ी से पता चलता है कि उपयोगकर्ता, Gmail API के अनुरोध की तय सीमा तक पहुंच गया है. अनुरोधों के टाइप के हिसाब से, यह सीमा अलग-अलग होती है. इस गड़बड़ी को JSON फ़ॉर्मैट में यहां दिखाया गया है:

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "message": "Rate Limit Exceeded",
    "reason": "rateLimitExceeded",
   }
  ],
  "code": 403,
  "message": "Rate Limit Exceeded"
 }
}

इस गड़बड़ी को ठीक करने के लिए, पूरे न हो पाने वाले अनुरोधों को फिर से भेजें.

Gmail की सीमाओं के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं लेख पढ़ें.

403 कोड वाली गड़बड़ी को ठीक करना: आईडी {appId} वाले ऐप्लिकेशन का इस्तेमाल, पुष्टि किए गए उपयोगकर्ता के डोमेन में नहीं किया जा सकता

domainPolicy गड़बड़ी तब होती है, जब उपयोगकर्ता के डोमेन की नीति के तहत, आपके ऐप्लिकेशन को Gmail को ऐक्सेस करने की अनुमति नहीं मिलती. इस गड़बड़ी को JSON फ़ॉर्मैट में यहां दिखाया गया है:

{
  "error": {
    "errors": [
      {
        "domain": "global",
        "reason": "domainPolicy",
        "message": "The domain administrators have disabled Gmail apps."
      }
    ],
    "code": 403,
    "message": "The domain administrators have disabled Gmail apps."
  }
}

इस गड़बड़ी को ठीक करने के लिए:

  1. उपयोगकर्ता को बताएं कि डोमेन आपके ऐप्लिकेशन को Gmail ऐक्सेस करने की अनुमति नहीं देता.
  2. उपयोगकर्ता को अपने ऐप्लिकेशन के ऐक्सेस का अनुरोध करने के लिए, डोमेन एडमिन से संपर्क करने के लिए कहें.

429 कोड वाली गड़बड़ी को हल करना: बहुत ज़्यादा अनुरोध

429 "बहुत ज़्यादा अनुरोध" गड़बड़ी का कोड तब दिख सकता है, जब हर उपयोगकर्ता के लिए तय की गई सीमाएं (जैसे, ईमेल भेजने की सीमाएं), बैंडविड्थ की सीमाएं या हर उपयोगकर्ता के लिए एक साथ किए जाने वाले अनुरोधों की सीमा पूरी हो गई हो. हर सीमा के बारे में जानकारी यहां दी गई है. हालांकि, हर सीमा को पूरे न हो पाने वाले अनुरोधों को फिर से आज़माकर या प्रोसेसिंग को कई Gmail खातों में बांटकर हल किया जा सकता है. किसी भी वजह से, हर उपयोगकर्ता के लिए तय की गई सीमाओं को नहीं बढ़ाया जा सकता. सीमाओं के बारे में ज़्यादा जानकारी के लिए, इस्तेमाल की सीमाएं देखें.

ईमेल भेजने की सीमाएं

Gmail API, ईमेल भेजने की हर दिन की स्टैंडर्ड सीमा लागू करता है. ये सीमाएं, पैसे चुकाकर सदस्यता लेने वाले उपयोगकर्ताओं और gmail.com का इस्तेमाल करने वाले उन उपयोगकर्ताओं के लिए अलग-अलग होती हैं जिन्होंने सदस्यता का ट्रायल लिया है. इन सीमाओं के बारे में जानने के लिए, में Gmail से ईमेल भेजने की सीमाएं लेख पढ़ें.

ये सीमाएं हर उपयोगकर्ता के लिए तय की जाती हैं और उपयोगकर्ता के सभी क्लाइंट के साथ शेयर की जाती हैं. भले ही, वे एपीआई क्लाइंट, नेटिव/वेब क्लाइंट या एसएमटीपी एमएसए हों. अगर इन सीमाओं को पार किया जाता है, तो फिर से कोशिश करने के लिए समय के साथ एचटीटीपी 429 Too Many Requests "उपयोगकर्ता-दर की सीमा पार हो गई" "(ईमेल भेजना)" गड़बड़ी का कोड दिखता है. ध्यान दें कि एक दिन में अनुरोध करने की तय सीमा से ज़्यादा अनुरोध करने पर, अनुरोध स्वीकार होने से पहले कई घंटों तक इस तरह की गड़बड़ियां दिख सकती हैं.

ईमेल भेजने की प्रोसेस जटिल है: जब उपयोगकर्ता अपने कोटे से ज़्यादा ईमेल भेजता है, तो एपीआई को 429 गड़बड़ी वाले रिस्पॉन्स देने में कई मिनट लग सकते हैं. इसलिए, यह नहीं माना जा सकता कि 200 कोड का मतलब है कि ईमेल भेज दिया गया है.

बैंडविड्थ की सीमाएं

एपीआई में, हर उपयोगकर्ता के लिए अपलोड और डाउनलोड करने की बैंडविड्थ की सीमाएं होती हैं. ये सीमाएं IMAP की सीमाओं के बराबर होती हैं, लेकिन इन पर IMAP का कोई असर नहीं पड़ता. ये सीमाएं, किसी उपयोगकर्ता के लिए Gmail API के सभी क्लाइंट के साथ शेयर की जाती हैं.

आम तौर पर, ये सीमाएं सिर्फ़ असाधारण या गलत इस्तेमाल की स्थितियों में लागू होती हैं. इन सीमाओं को पार करने पर, HTTP 429 Too Many Requests "उपयोगकर्ता की दर की सीमा पार हो गई" गड़बड़ी का मैसेज दिखता है. साथ ही, फिर से कोशिश करने का समय भी दिखता है. ध्यान दें कि रोज़ की तय सीमा से ज़्यादा अनुरोध करने पर, अनुरोध स्वीकार होने से पहले कई घंटों तक इस तरह की गड़बड़ियां दिख सकती हैं.

एक साथ कई अनुरोध

Gmail API, हर उपयोगकर्ता के लिए एक साथ किए जाने वाले अनुरोधों की सीमा तय करता है. यह सीमा, हर उपयोगकर्ता के लिए तय की गई दर की सीमा के अलावा होती है. यह सीमा, किसी उपयोगकर्ता को ऐक्सेस करने वाले सभी Gmail API क्लाइंट के साथ शेयर की जाती है. इससे यह पक्का होता है कि कोई भी एपीआई क्लाइंट, Gmail उपयोगकर्ता के मेलबॉक्स या उसके बैकएंड सर्वर को ओवरलोड न कर रहा हो.

एक ही उपयोगकर्ता के लिए कई अनुरोध करने या बड़ी संख्या में अनुरोधों के साथ एक साथ कई अनुरोध भेजने पर, यह गड़बड़ी दिख सकती है. Gmail उपयोगकर्ता के मेलबॉक्स को एक साथ ऐक्सेस करने वाले कई स्वतंत्र एपीआई क्लाइंट भी इस गड़बड़ी को ट्रिगर कर सकते हैं. इस सीमा से ज़्यादा अनुरोध करने पर, एचटीटीपी 429 Too Many Requests "उपयोगकर्ता के लिए एक साथ बहुत ज़्यादा अनुरोध" गड़बड़ी का मैसेज दिखता है.

500 कोड वाली गड़बड़ी ठीक करना: बैकएंड से जुड़ी गड़बड़ी

backendError तब दिखता है, जब अनुरोध को प्रोसेस करते समय कोई अनचाही गड़बड़ी होती है.

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "backendError",
    "message": "Backend Error",
   }
  ],
  "code": 500,
  "message": "Backend Error"
 }
}

इस गड़बड़ी को ठीक करने के लिए, पूरे न हो पाने वाले अनुरोधों को फिर से भेजें. यहां 500 गड़बड़ियों की सूची दी गई है:

  • 502 खराब गेटवे
  • 503 सेवा उपलब्ध नहीं है
  • 504 गेटवे का टाइम आउट

गड़बड़ियों को ठीक करने के लिए, पूरे न हो पाने वाले अनुरोधों को फिर से भेजना

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

गड़बड़ी के कम से कम एक सेकंड बाद, फिर से कोशिश करने की अवधियां शुरू करें.

इस्तेमाल की सीमाएं देखना या बदलना, कोटा बढ़ाना

अपने प्रोजेक्ट के लिए, इस्तेमाल की सीमाएं देखने या उनमें बदलाव करने के लिए या अपने कोटा को बढ़ाने का अनुरोध करने के लिए, यह तरीका अपनाएं:

  1. अगर आपके पास अपने प्रोजेक्ट के लिए पहले से कोई बिलिंग खाता नहीं है, तो एक खाता बनाएं.
  2. एपीआई कंसोल में, एपीआई लाइब्रेरी के चालू एपीआई पेज पर जाएं और सूची से कोई एपीआई चुनें.
  3. कोटा से जुड़ी सेटिंग देखने और उन्हें बदलने के लिए, कोटा चुनें. इस्तेमाल के आंकड़े देखने के लिए, इस्तेमाल चुनें.

एक साथ कई अनुरोध करना

एक साथ कई फ़ाइलें अपलोड करने का सुझाव दिया जाता है. हालांकि, एक साथ कई फ़ाइलें अपलोड करने पर, अपलोड की दर सीमित हो सकती है. हमारा सुझाव है कि 50 से ज़्यादा अनुरोधों के बैच न भेजें. एक साथ कई अनुरोध करने के तरीके के बारे में जानने के लिए, एक साथ कई अनुरोध करना लेख पढ़ें.