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

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 गड़बड़ी को ठीक करना: कई अनुरोध किए गए हैं

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

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

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

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

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

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

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

ये सीमाएं आम तौर पर कुछ खास मामलों में ही लागू होती हैं या उनका इस्तेमाल गलत तरीके से किया जाता है. अगर ये सीमाएं एचटीटीपी 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 से बड़े बैच भेजने का सुझाव नहीं देते. अनुरोधों को बैच बनाने के तरीके के बारे में जानने के लिए, एक साथ कई अनुरोध भेजने के अनुरोध देखें.