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

Gmail API ত্রুটির তথ্যের দুটি স্তর প্রদান করে:

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

Gmail অ্যাপ্লিকেশানগুলিকে REST API ব্যবহার করার সময় সম্মুখীন হতে পারে এমন সমস্ত ত্রুটি ধরা এবং পরিচালনা করা উচিত৷ এই নির্দেশিকা নির্দিষ্ট 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 ত্রুটি নির্দেশ করে যে আপনার প্রকল্পের জন্য সৌজন্য API সীমা পৌঁছে গেছে। এই ত্রুটির 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 অ্যাকাউন্ট জুড়ে প্রক্রিয়াকরণ বিভক্ত করে প্রতিটি সীমা সমাধান করা যেতে পারে। প্রতি-ব্যবহারকারীর সীমা কোনো কারণে বাড়ানো যাবে না। সীমা সম্পর্কে আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।

মেল পাঠানোর সীমা

জিমেইল এপিআই স্ট্যান্ডার্ড দৈনিক মেল পাঠানোর সীমা কার্যকর করে। Google Workspace ব্যবহারকারী এবং gmail.com ব্যবহারকারীদের ট্রায়াল দেওয়ার জন্য এই সীমাগুলি আলাদা। এই সীমাগুলির জন্য, Google Workspaceএ Gmail পাঠানোর সীমা পড়ুন।

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

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

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

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

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

সমবর্তী অনুরোধ

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

একক ব্যবহারকারীর জন্য অনেক সমান্তরাল অনুরোধ করা বা প্রচুর সংখ্যক অনুরোধ সহ ব্যাচ পাঠানো এই ত্রুটিটিকে ট্রিগার করতে পারে। একযোগে Gmail ব্যবহারকারীর মেলবক্স অ্যাক্সেস করার জন্য একটি বড় সংখ্যক স্বাধীন API ক্লায়েন্টও এই ত্রুটিটিকে ট্রিগার করতে পারে। এই সীমা অতিক্রম করা হলে একটি HTTP 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. API কনসোলে API লাইব্রেরির সক্ষম APIs পৃষ্ঠায় যান এবং তালিকা থেকে একটি API নির্বাচন করুন।
  3. কোটা-সম্পর্কিত সেটিংস দেখতে এবং পরিবর্তন করতে, কোটা নির্বাচন করুন। ব্যবহারের পরিসংখ্যান দেখতে, ব্যবহার নির্বাচন করুন।

ব্যাচ অনুরোধ

ব্যাচিং ব্যবহার করাকে উৎসাহিত করা হয়, তবে, বড় ব্যাচের মাপ হার সীমিত করতে পারে। 50 টি অনুরোধের চেয়ে বড় ব্যাচ পাঠানোর সুপারিশ করা হয় না। কিভাবে ব্যাচ রিকোয়েস্ট করতে হয় সে সম্পর্কে তথ্যের জন্য, ব্যাচিং রিকোয়েস্ট দেখুন।