ত্রুটিগুলি সমাধান করুন

জিমেইল এপিআই দুটি স্তরের ত্রুটি তথ্য প্রদান করে:

  • হেডারে HTTP ত্রুটি কোড এবং বার্তা।
  • প্রতিক্রিয়ার অংশে একটি JSON অবজেক্ট, অতিরিক্ত বিবরণ সহ যা আপনাকে ত্রুটিটি কীভাবে পরিচালনা করবেন তা নির্ধারণ করতে সহায়তা করতে পারে।

REST API ব্যবহার করার সময় যেসব ত্রুটি দেখা দিতে পারে, Gmail অ্যাপগুলি সেগুলো ধরবে এবং সমাধান করবে। এই নির্দেশিকাটিতে নির্দিষ্ট API ত্রুটিগুলি কীভাবে সমাধান করবেন তার নির্দেশাবলী রয়েছে।

৪০০ ত্রুটি সমাধান করুন: খারাপ অনুরোধ

এই ত্রুটিটি আপনার কোডের এই ত্রুটিগুলির কারণে হতে পারে:

  • কোনও প্রয়োজনীয় ক্ষেত্র বা প্যারামিটার সরবরাহ করা হয়নি।
  • সরবরাহকৃত মান অথবা প্রদত্ত ক্ষেত্রগুলির সংমিশ্রণ অবৈধ।
  • অবৈধ সংযুক্তি।

এই ত্রুটির একটি নমুনা 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 এর সাথে আপনার অ্যাপকে অনুমোদন করাতে বর্ণিত হয়েছে।

জিমেইলের সীমা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।

একটি 403 ত্রুটি সমাধান করুন: ব্যবহারের সীমা অতিক্রম করেছে

যখন ব্যবহারের সীমা অতিক্রম করা হয় অথবা ব্যবহারকারীর সঠিক সুবিধা না থাকে তখন একটি ত্রুটি 403 ঘটে। নির্দিষ্ট ধরণের ত্রুটি নির্ধারণ করতে, ফিরে আসা JSON-এর reason ক্ষেত্রটি মূল্যায়ন করুন। এই ত্রুটি নিম্নলিখিত পরিস্থিতিতে ঘটে:

  • দৈনিক সীমা অতিক্রম করা হয়েছে।
  • ব্যবহারকারীর হারের সীমা অতিক্রম করেছে।
  • প্রকল্পের হারের সীমা অতিক্রম করা হয়েছে।
  • আপনার অ্যাপটি প্রমাণীকৃত ব্যবহারকারীর ডোমেনের মধ্যে ব্যবহার করা যাবে না।

জিমেইলের সীমা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।

একটি 403 ত্রুটি সমাধান করুন: দৈনিক সীমা অতিক্রম করেছে

একটি dailyLimitExceeded ত্রুটি নির্দেশ করে যে আপনার প্রকল্পের সৌজন্যে API সীমা পৌঁছে গেছে। এই ত্রুটির JSON উপস্থাপনা নিম্নরূপ:

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

এই ত্রুটিটি ঠিক করতে:

  1. গুগল এপিআই কনসোলটি দেখুন
  2. আপনার প্রকল্পটি নির্বাচন করুন।
  3. কোটাস ট্যাবে ক্লিক করুন।
  4. অতিরিক্ত কোটার জন্য অনুরোধ করুন। আরও তথ্যের জন্য, অতিরিক্ত কোটার জন্য অনুরোধ দেখুন।

জিমেইলের সীমা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।

একটি 403 ত্রুটি সমাধান করুন: ব্যবহারকারীর হারের সীমা অতিক্রম করেছে

একটি userRateLimitExceeded ত্রুটি নির্দেশ করে যে প্রতি ব্যবহারকারীর সীমা পৌঁছে গেছে। এই ত্রুটির JSON উপস্থাপনা নিম্নরূপ:

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

এই ত্রুটিটি ঠিক করতে, কম অনুরোধ করার জন্য আপনার অ্যাপ্লিকেশন কোডটি অপ্টিমাইজ করার চেষ্টা করুন অথবা পুনরায় অনুরোধ করার চেষ্টা করুন। পুনরায় চেষ্টা করার অনুরোধ সম্পর্কে তথ্যের জন্য, ত্রুটিগুলি সমাধানের জন্য পুনরায় চেষ্টা ব্যর্থ অনুরোধগুলি দেখুন।

জিমেইলের সীমা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।

একটি 403 ত্রুটি সমাধান করুন: হার সীমা অতিক্রম করেছে

একটি rateLimitExceeded ত্রুটি নির্দেশ করে যে ব্যবহারকারী Gmail API-এর সর্বোচ্চ অনুরোধ হারে পৌঁছেছেন। এই সীমা অনুরোধের ধরণের উপর নির্ভর করে পরিবর্তিত হয়। এই ত্রুটির JSON উপস্থাপনা নিম্নরূপ:

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

এই ত্রুটিটি ঠিক করতে, ব্যর্থ অনুরোধগুলি পুনরায় চেষ্টা করুন

জিমেইলের সীমা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।

একটি 403 ত্রুটি সমাধান করুন: {appId} আইডি সহ অ্যাপটি প্রমাণিত ব্যবহারকারীর ডোমেনের মধ্যে ব্যবহার করা যাবে না

যখন ব্যবহারকারীর ডোমেনের নীতি আপনার অ্যাপকে Gmail অ্যাক্সেস করার অনুমতি দেয় না, তখন একটি domainPolicy ত্রুটি ঘটে। এই ত্রুটির 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 পাঠানোর সীমা দেখুন।

এই সীমাগুলি প্রতি ব্যবহারকারীর জন্য এবং ব্যবহারকারীর সমস্ত ক্লায়েন্টের দ্বারা ভাগ করা হয়, তা API ক্লায়েন্ট, নেটিভ/ওয়েব ক্লায়েন্ট বা SMTP MSA যাই হোক না কেন। যদি এই সীমা অতিক্রম করা হয়, তাহলে একটি HTTP 429 Too Many Requests "User-rat limit exceeded" "(Mail sending)" ত্রুটি ফেরত পাঠানো হবে এবং পুনরায় চেষ্টা করার সময় দেওয়া হবে। মনে রাখবেন যে দৈনিক সীমা অতিক্রম করার ফলে অনুরোধ গ্রহণের আগে একাধিক ঘন্টা ধরে এই ধরণের ত্রুটি দেখা দিতে পারে।

মেইল পাঠানোর পাইপলাইনটি জটিল: ব্যবহারকারী একবার তাদের কোটা অতিক্রম করলে, API 429 ত্রুটির প্রতিক্রিয়া ফেরত দিতে শুরু করার আগে কয়েক মিনিট বিলম্ব হতে পারে। তাই আপনি ধরে নিতে পারবেন না যে 200 প্রতিক্রিয়া মানে ইমেলটি সফলভাবে পাঠানো হয়েছে।

ব্যান্ডউইথ সীমা

API-তে প্রতি ব্যবহারকারীর আপলোড এবং ডাউনলোড ব্যান্ডউইথের সীমা রয়েছে যা IMAP-এর সমান, কিন্তু এর থেকে স্বাধীন। এই সীমাগুলি একটি নির্দিষ্ট ব্যবহারকারীর জন্য সমস্ত Gmail API ক্লায়েন্টের সাথে ভাগ করা হয়।

এই সীমাগুলি সাধারণত শুধুমাত্র ব্যতিক্রমী বা আপত্তিকর পরিস্থিতিতে প্রয়োগ করা হয়। যদি এই সীমা অতিক্রম করা হয় তবে HTTP 429 Too Many Requests "User-rat limit exceeded" ত্রুটিটি পুনরায় চেষ্টা করার সময় সহ ফেরত পাঠানো হবে। মনে রাখবেন যে দৈনিক সীমা অতিক্রম করা হলে অনুরোধ গ্রহণের আগে একাধিক ঘন্টা ধরে এই ধরণের ত্রুটি দেখা দিতে পারে।

সমসাময়িক অনুরোধ

জিমেইল এপিআই প্রতি ব্যবহারকারীর জন্য একটি সমকালীন অনুরোধ সীমা (প্রতি ব্যবহারকারীর হার সীমা ছাড়াও) প্রয়োগ করে। এই সীমাটি একটি নির্দিষ্ট ব্যবহারকারীকে অ্যাক্সেসকারী সমস্ত জিমেইল এপিআই ক্লায়েন্টদের দ্বারা ভাগ করা হয় এবং নিশ্চিত করে যে কোনও এপিআই ক্লায়েন্ট কোনও জিমেইল ব্যবহারকারীর মেলবক্স বা তাদের ব্যাকএন্ড সার্ভারকে ওভারলোড করছে না।

একজন ব্যবহারকারীর জন্য অনেকগুলি সমান্তরাল অনুরোধ করা বা প্রচুর সংখ্যক অনুরোধ সহ ব্যাচ পাঠানো এই ত্রুটির কারণ হতে পারে। একই সাথে Gmail ব্যবহারকারীর মেলবক্স অ্যাক্সেসকারী বিপুল সংখ্যক স্বাধীন API ক্লায়েন্টও এই ত্রুটির কারণ হতে পারে। যদি এই সীমা অতিক্রম করা হয় তবে HTTP 429 Too Many Requests "Too many concurrent requests for user" ত্রুটিটি ফেরত পাঠানো হবে।

৫০০ ত্রুটি সমাধান করুন: ব্যাকএন্ড ত্রুটি

অনুরোধ প্রক্রিয়াকরণের সময় যখন একটি অপ্রত্যাশিত ত্রুটি দেখা দেয় তখন একটি backendError ঘটে।

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

এই ত্রুটিটি ঠিক করতে, ব্যর্থ অনুরোধগুলি পুনরায় চেষ্টা করুন । ৫০০টি ত্রুটির তালিকা নিচে দেওয়া হল:

  • ৫০২ ব্যাড গেটওয়ে
  • ৫০৩ পরিষেবা অনুপলব্ধ
  • ৫০৪ গেটওয়ে টাইমআউট

ত্রুটিগুলি সমাধানের জন্য ব্যর্থ অনুরোধগুলি পুনরায় চেষ্টা করুন

রেট লিমিট, নেটওয়ার্ক ভলিউম, অথবা রেসপন্স টাইম সম্পর্কিত ত্রুটিগুলি সমাধান করার জন্য আপনি একটি ব্যর্থ অনুরোধ পর্যায়ক্রমে ক্রমবর্ধমান সময়ের সাথে পুনরায় চেষ্টা করতে পারেন। উদাহরণস্বরূপ, আপনি এক সেকেন্ড পরে, তারপর দুই সেকেন্ড পরে এবং তারপর চার সেকেন্ড পরে একটি ব্যর্থ অনুরোধ পুনরায় চেষ্টা করতে পারেন। এই পদ্ধতিটিকে এক্সপোনেনশিয়াল ব্যাকঅফ বলা হয় এবং এটি ব্যান্ডউইথ ব্যবহার উন্নত করতে এবং সমসাময়িক পরিবেশে অনুরোধের থ্রুপুট সর্বাধিক করতে ব্যবহৃত হয়।

ত্রুটির কমপক্ষে এক সেকেন্ড পরে পুনরায় চেষ্টা করার সময়কাল শুরু করুন।

ব্যবহারের সীমা দেখুন বা পরিবর্তন করুন, কোটা বাড়ান

আপনার প্রকল্পের ব্যবহারের সীমা দেখতে বা পরিবর্তন করতে, অথবা আপনার কোটা বৃদ্ধির অনুরোধ করতে, নিম্নলিখিতগুলি করুন:

  1. যদি আপনার প্রকল্পের জন্য ইতিমধ্যেই কোনও বিলিং অ্যাকাউন্ট না থাকে, তাহলে একটি তৈরি করুন।
  2. API কনসোলে API লাইব্রেরির Enabled APIs পৃষ্ঠাটি দেখুন এবং তালিকা থেকে একটি API নির্বাচন করুন।
  3. কোটা-সম্পর্কিত সেটিংস দেখতে এবং পরিবর্তন করতে, কোটা নির্বাচন করুন। ব্যবহারের পরিসংখ্যান দেখতে, ব্যবহার নির্বাচন করুন।

ব্যাচ অনুরোধ

ব্যাচিং ব্যবহার উৎসাহিত করা হয়, তবে, বৃহত্তর ব্যাচের আকার রেট সীমাবদ্ধতা ট্রিগার করতে পারে। ৫০টির বেশি অনুরোধ পাঠানোর পরামর্শ দেওয়া হয় না। কীভাবে ব্যাচ অনুরোধ করবেন সে সম্পর্কে তথ্যের জন্য, ব্যাচিং অনুরোধগুলি দেখুন।