इस पेज पर, Google Classroom API से जुड़ी कुछ सामान्य गड़बड़ियों के मैसेज और समस्याओं के बारे में बताया गया है. साथ ही, इन गड़बड़ियों को ठीक करने के लिए संभावित कार्रवाइयों के बारे में बताया गया है:
- HTTP 400:
FAILED_PRECONDITION
- HTTP 403:
PERMISSION_DENIED
- एचटीटीपी 429:
RESOURCE_EXHAUSTED
- एचटीटीपी 500:
INTERNAL
एचटीटीपी 400: FAILED_PRECONDITION
जब उपयोगकर्ता कोई ऐसी कार्रवाई करने की कोशिश करता है जिसकी अनुमति नहीं दी जा सकती, तब FAILED_PRECONDITION
दिखाया जाता है. ऐसा तब होता है, जब उपयोगकर्ता किसी सीमा या ऐप्लिकेशन की स्थिति, जैसे कि CourseNotModifiable
पर पहुंच गया हो. FAILED_PRECONDITION
को ठीक करने के लिए, उपयोगकर्ता को कुछ कार्रवाई करने के लिए कहें. इसके बाद, फिर से कोशिश करें. इसके अलावा, कुछ मामलों में उपयोगकर्ता की ओर से स्थिति ठीक करने के लिए, वैकल्पिक एंडपॉइंट का इस्तेमाल किया जा सकता है.
AttachmentNotVisible
AttachmentNotVisible
से पता चलता है कि बताए गए एक या उससे ज़्यादा अटैचमेंट, उपयोगकर्ता को नहीं दिख रहे हैं, अनुरोध किए गए टाइप के नहीं हैं या मौजूद नहीं हैं. उदाहरण के लिए, Drive के ऐसे आइटम के लिए यह गड़बड़ी दिखेगी जिन्हें उपयोगकर्ता के साथ शेयर नहीं किया गया है.
कार्रवाई की जा सकती है: फ़ाइल ऐक्सेस करने का अनुरोध पूरा न होने की वजह बताएं. साथ ही, उपयोगकर्ता को यह सुझाव दें कि वह Drive फ़ाइल आईडी जैसे आइडेंटिफ़ायर की दोबारा जांच करे. यह भी पक्का करें कि उपयोगकर्ता के पास अटैचमेंट देखने की ज़रूरी अनुमतियां हों.
CannotRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
से पता चलता है कि कोर्स के Drive फ़ोल्डर के मालिक को नहीं हटाया जा सकता.
संभावित कार्रवाई: इस समस्या की वजह बताएं. साथ ही, उपयोगकर्ता को सुझाव दें कि वह कोर्स के Drive फ़ोल्डर का मालिकाना हक किसी दूसरे उपयोगकर्ता को ट्रांसफ़र करे और फिर से कोशिश करे.
CannotRemoveCourseOwner
CannotRemoveCourseOwner
का मतलब है कि कोर्स के मालिक को नहीं हटाया जा सकता.
संभावित कार्रवाई: कोर्स के मालिक को हटाने की कार्रवाई पूरी न होने की वजह बताएं. साथ ही, सुझाव दें कि कोर्स के मालिक को हटाया नहीं जा सकता. ज़्यादातर मामलों में, उपयोगकर्ता खुद को हटाने की कोशिश कर रहा होता है. हालांकि, ऐसा करने की अनुमति नहीं है.
CannotRemoveCourseOwnerTransferIncomplete
CannotRemoveCourseOwnerTransferIncomplete
से पता चलता है कि कोर्स के मालिक को हटाया नहीं जा सकता, क्योंकि इस क्लास का मालिकाना हक ट्रांसफ़र करने की प्रोसेस अब भी जारी है.
कार्रवाई की जा सकती है: मालिकाना हक ट्रांसफ़र न हो पाने की वजह बताएं. साथ ही, उपयोगकर्ता को यह सुझाव दें कि वह क्लास का मालिकाना हक ट्रांसफ़र करने की एसिंक्रोनस कार्रवाई पूरी होने तक कुछ देर इंतज़ार करे. इसके बाद, फिर से कोशिश करे.
CannotRemoveTeacherWithNoCourseOwner
CannotRemoveTeacherWithNoCourseOwner
से पता चलता है कि जिस कोर्स का कोई मालिक नहीं है उससे किसी शिक्षक को नहीं हटाया जा सकता.
संभावित कार्रवाई: शिक्षक को हटाने का अनुरोध पूरा न होने की वजह बताएं. साथ ही, यह सुझाव दें कि शिक्षक को हटाया नहीं जा सकता. ज़्यादातर मामलों में, कोर्स के मालिक का उपयोगकर्ता खाता मिटा दिया गया था. इस वजह से, कोर्स की स्थिति अमान्य हो गई.
CourseMemberLimitReached
CourseMemberLimitReached
से पता चलता है कि कार्रवाई करने से, कोर्स में शामिल सदस्यों की तय सीमा से ज़्यादा सदस्य जुड़ जाएंगे. यह कोड आम तौर पर students.create()
दिखाता है. ज़्यादा जानकारी के लिए, सहायता केंद्र के लेख छात्र-छात्राओं को क्लास में शामिल होने का न्योता भेजना में "क्लास में शामिल होने वाले छात्र-छात्राओं की संख्या की सीमाएं" सेक्शन देखें.
कार्रवाई का सुझाव: कोर्स के सदस्यों को न जोड़े जा सकने की वजह बताएं. साथ ही, उपयोगकर्ता को सुझाव दें कि वह कोर्स के उन सदस्यों को हटा दे जिनकी ज़रूरत नहीं है
CourseNotModifiable
CourseNotModifiable
से पता चलता है कि कोर्स ऐसी स्थिति में है कि उसकी प्रॉपर्टी में बदलाव नहीं किया जा सकता. हालांकि, कोर्स की स्थिति में बदलाव किया जा सकता है.
कार्रवाई की जा सकती है:
उपयोगकर्ता को कोर्स की स्थिति बदलकर, बदली जा सकने वाली स्थिति में लाने के लिए कहें. स्टेटस बदलने के लिए, courses.patch()
का इस्तेमाल करें.
कोर्स की स्थिति को ऐसे अनुरोध में बदला जा सकता है जिससे अन्य प्रॉपर्टी में बदलाव होता है.
CourseTeacherLimitReached
CourseTeacherLimitReached
से पता चलता है कि अनुरोध की गई कार्रवाई से, कोर्स के शिक्षकों की तय सीमा से ज़्यादा संख्या हो जाएगी. आम तौर पर, यह कोड teachers.create()
तरीके से मिलता है.
ज़्यादा जानकारी के लिए, सहायता केंद्र के क्लास में किसी सह-शिक्षक को जोड़ना लेख में, "क्लास में शामिल किए जा सकने वाले लोगों की संख्या से जुड़ी सीमाएं" सेक्शन देखें.
कार्रवाई की जा सकती है:
बताएं कि फ़ाइल अपलोड क्यों नहीं हो सकी. साथ ही, उपयोगकर्ता को सुझाव दें कि वह कोर्स के उन शिक्षकों को हटा दे जिनकी ज़रूरत नहीं है. अगर यह आपके ऐप्लिकेशन पर लागू होता है, तो उपयोगकर्ता की ओर से शिक्षक की रोस्टर मैनेज करने के लिए, teachers.delete()
तरीके का इस्तेमाल किया जा सकता है.
CourseTitleCannotContainUrl
CourseTitleCannotContainUrl
से पता चलता है कि अनुरोध की गई कार्रवाई की अनुमति नहीं है, क्योंकि इससे कोर्स के टाइटल में यूआरएल शामिल हो जाएगा. कोर्स के टाइटल में यूआरएल पैटर्न इस्तेमाल नहीं किए जा सकते.
कार्रवाई का सुझाव:
विफल होने की वजह बताएं. साथ ही, उपयोगकर्ता को सुझाव दें कि वह title
फ़ील्ड से यूआरएल पैटर्न हटा दे. description
फ़ील्ड में यूआरएल इस्तेमाल किए जा सकते हैं.
CourseTopicLimitReached
CourseTopicLimitReached
से पता चलता है कि अनुरोध की गई कार्रवाई से, किसी कोर्स में विषयों की तय सीमा से ज़्यादा विषय जुड़ जाएंगे. यह कोड आम तौर पर, courses.topics.create()
तरीके से वापस मिलता है.
कार्रवाई की जा सकती है:
बताएं कि ऐसा क्यों हुआ. साथ ही, उपयोगकर्ता को सुझाव दें कि वह गैर-ज़रूरी विषयों को हटा दे. अगर यह आपके ऐप्लिकेशन पर लागू होती है, तो उपयोगकर्ता की ओर से विषयों को मैनेज करने के लिए, courses.topics.delete()
तरीके का इस्तेमाल किया जा सकता है.
EmptyAssignees
EmptyAssignees
का मतलब है कि अनुरोध की गई कार्रवाई से, असाइन किए गए सभी लोगों को कोर्स के काम से हटा दिया जाएगा. ऐसे कोर्स वर्क इस्तेमाल नहीं किए जा सकते जिन्हें किसी छात्र-छात्रा को असाइन न किया गया हो.
संभावित कार्रवाई: कोर्स के मालिक को यह बताना कि असाइन किए गए सभी लोगों को नहीं हटाया जा सकता. साथ ही, यह भी बताना कि ऐसा क्यों नहीं किया जा सकता.
InactiveCourseOwner
InactiveCourseOwner
का मतलब है कि कोर्स के मालिक का खाता मिटा दिया गया है. इसलिए, अनुरोध की गई कार्रवाई को पूरा नहीं किया जा सकता. कोर्स के मालिक के खाते को वापस लाने के लिए, कोर्स के मालिक के एडमिन को अनुरोध की गई कार्रवाई करनी होगी.
कार्रवाई की जा सकती है: बताएं कि कोर्स के मालिकाना हक को ट्रांसफ़र क्यों नहीं किया जा सका. साथ ही, एडमिन को यह सुझाव दें कि वह कोर्स के मालिक का खाता वापस लाए. इसके बाद, कोर्स के मालिकाना हक को ट्रांसफ़र करने की कोशिश करें.
IneligibleOwner
IneligibleOwner
से पता चलता है कि उपयोगकर्ता को कोर्स के मालिक के तौर पर नहीं जोड़ा जा सकता, क्योंकि वह सह-शिक्षक नहीं है.
संभावित कार्रवाई: फ़ेल होने की वजह बताएं. अगर अनुरोध करने वाला व्यक्ति एडमिन नहीं है, तो उसे सुझाव दें कि वह मालिक की भूमिका अपडेट करने से पहले, उपयोगकर्ता को कोर्स में शिक्षक बनने का न्योता भेजे. अगर अनुरोध करने वाला व्यक्ति एडमिन है, तो उसे सुझाव दें कि वह पहले उपयोगकर्ता को कोर्स का सह-शिक्षक बनाए.
PendingInvitationExists
PendingInvitationExists
का मतलब है कि किसी व्यक्ति को कोर्स का मालिकाना हक लेने के लिए पहले ही न्योता भेजा जा चुका है. यह गड़बड़ी, कोर्स के मालिकाना हक को ट्रांसफ़र करने के दौरान तब होती है, जब ट्रांसफ़र की प्रोसेस पहले शुरू की गई थी, लेकिन नए मालिक ने अब तक उसे स्वीकार नहीं किया है.
UserCannotOwnCourse
UserCannotOwnCourse
से पता चलता है कि उपयोगकर्ता को कोर्स के मालिक के तौर पर नहीं जोड़ा जा सकता.
कार्रवाई की जा सकती है: कोर्स नहीं बन पाने की वजह बताएं. साथ ही, यह सुझाव दें कि उपयोगकर्ता को कोर्स का मालिक नहीं बनाया जा सकता. अगर कोई ऐसा उपयोगकर्ता कोर्स बनाने का अनुरोध करता है जिसके पास एडमिन की भूमिका नहीं है और वह किसी ऐसे उपयोगकर्ता को कोर्स का मालिक बनाता है जो वह खुद नहीं है, तो उसे यह गड़बड़ी दिख सकती है. अगर मालिकाना हक वाले उपयोगकर्ता के तौर पर बताया गया खाता मौजूद नहीं है या उपयोगकर्ता उनके डोमेन में नहीं है, तो अनुरोध करने वाला एडमिन यह गड़बड़ी देख सकता है.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
का मतलब है कि उपयोगकर्ता, पहले से ही तय सीमा के मुताबिक ग्रुप में शामिल है. इसलिए, वह किसी भी कोर्स में शामिल नहीं हो सकता. यह कोड आम तौर पर, students.create()
या teachers.create()
दिखाता है.
ज़्यादा जानकारी के लिए, सहायता केंद्र के छात्र-छात्राओं को क्लास में शामिल होने का न्योता भेजना लेख में, "क्लास में शामिल होने वाले छात्र-छात्राओं की संख्या से जुड़ी सीमाएं" सेक्शन देखें.
कार्रवाई की जा सकती है:
कोर्स में शामिल न हो पाने की वजह बताएं. साथ ही, उपयोगकर्ता को उन सभी कोर्स से ऑप्ट आउट करने का सुझाव दें जिनमें वह शामिल नहीं है. अगर उपयोगकर्ता को ज़्यादा कोर्स में हिस्सा लेना है, तो वह एक और खाता बना सकता है. अगर आपके ऐप्लिकेशन पर लागू होता है, तो
उपयोगकर्ता की ओर से रोस्टर मैनेज करने के लिए, students.create()
या teachers.delete()
का इस्तेमाल किया जा सकता है.
एचटीटीपी 403: PERMISSION_DENIED
अगर कोई उपयोगकर्ता, Classroom API को ऐक्सेस करने की ज़रूरी शर्तें पूरी नहीं करता है, तो Classroom API के सभी तरीके PERMISSION_DENIED
(एचटीटीपी 403) गड़बड़ी दिखा सकते हैं. गड़बड़ी के साथ दिखने वाले मैसेज में, गड़बड़ी का मैसेज शामिल होता है. इससे आपको गड़बड़ी की वजह पता लगाने में मदद मिलती है. साथ ही, उपयोगकर्ताओं को सही कार्रवाई करने के लिए निर्देश दिए जा सकते हैं.
यहां दिए गए सेक्शन में, Classroom API से जुड़ी गड़बड़ियों के सामान्य मैसेज के बारे में बताया गया है.
CannotDirectAddUser
CannotDirectAddUser
का मतलब है कि किसी उपयोगकर्ता को सीधे तौर पर कोर्स में नहीं जोड़ा जा सकता. यह कोड तब दिखता है, जब कोई डोमेन एडमिन किसी उपयोगकर्ता को किसी कोर्स में जोड़ने की कोशिश करता है और उस उपयोगकर्ता के पास ईमेल पता नहीं होता या वह डोमेन का सदस्य नहीं होता.
संभावित कार्रवाई: बताएं कि उपयोगकर्ता को कोर्स में शामिल क्यों नहीं किया जा सका. साथ ही, डोमेन एडमिन को यह सुझाव दें कि वह जांच करे कि उपयोगकर्ता खाता मौजूद है या नहीं. इसके अलावा, यह भी जांच करे कि उपयोगकर्ता खाता, कोर्स एडमिन के डोमेन में है या नहीं.
ClassroomApiDisabled
ClassroomApiDisabled
से पता चलता है कि अनुरोध करने वाले उपयोगकर्ता के पास Classroom API का ऐक्सेस नहीं है.
कार्रवाई की जा सकती है: उपयोगकर्ता को Classroom के डेटा का ऐक्सेस चालू करने के निर्देशों पर भेजें. ClassroomDisabled भी देखें, क्योंकि हो सकता है कि उपयोगकर्ता गलत खाते का इस्तेमाल कर रहा हो.
ClassroomDisabled
ClassroomDisabled
से पता चलता है कि अनुरोध करने वाले उपयोगकर्ता के पास Classroom का ऐक्सेस नहीं है.
कार्रवाई का सुझाव: उपयोगकर्ता को Classroom का ऐक्सेस चालू करने के निर्देशों पर भेजें. ऐसा हो सकता है कि उपयोगकर्ता ने गलत खाते का इस्तेमाल किया हो. इसलिए, एक से ज़्यादा खातों का इस्तेमाल करने के बारे में जानकारी देने वाला लिंक भी दिया जा सकता है, ताकि उपयोगकर्ता सही खाता चुन सके.
ExpiredAddOnToken
ExpiredAddOnToken
से पता चलता है कि एपीआई को कॉल करने के लिए इस्तेमाल किए जा रहे ऐड-ऑन टोकन की समयसीमा खत्म हो गई है.
कार्रवाई की जा सकती है: उपयोगकर्ता को पेज रीफ़्रेश करने या ऐड-ऑन में फिर से साइन इन करने के लिए कहें, ताकि आपको अनुरोध यूआरएल से नया addOnToken
क्वेरी पैरामीटर मिल सके.
InvalidAddOnToken
InvalidAddOnToken
से पता चलता है कि अनुरोध में पास किया गया ऐड-ऑन टोकन, असाइनमेंट में ऐड-ऑन अटैचमेंट बनाने के लिए अधिकृत नहीं है.
कार्रवाई की जा सकती है: यह गड़बड़ी तब दिख सकती है, जब उपयोगकर्ता Classroom में मौजूद खाते के बजाय किसी दूसरे खाते से ऐड-ऑन में साइन इन करता है. उपयोगकर्ता को ब्राउज़र में मौजूद सभी खातों से साइन आउट करने या Chrome की गुप्त विंडो में Classroom खोलने के लिए कहें.
ProjectPermissionDenied
ProjectPermissionDenied
से पता चलता है कि अनुरोध में, Developer Console के किसी दूसरे प्रोजेक्ट से जुड़े संसाधन में बदलाव करने की कोशिश की गई है.
कार्रवाई का सुझाव: बताएं कि आपका ऐप्लिकेशन, अनुरोध नहीं कर सकता. यह अनुरोध सिर्फ़ उस Developer Console प्रोजेक्ट से किया जा सकता है जिसने संसाधन बनाया है. इसके लिए, OAuth क्लाइंट आईडी का इस्तेमाल किया जाता है.
UserIneligibleToUpdateGradingPeriodSettings
UserIneligibleToUpdateGradingPeriodSettings
से पता चलता है कि अनुरोध में, किसी ऐसे कोर्स के ग्रेडिंग पीरियड की सेटिंग में बदलाव करने की कोशिश की गई है जिसके लिए अनुरोध करने वाले उपयोगकर्ता या कोर्स के मालिक के पास, Google Workspace for Education का ज़रूरी लाइसेंस नहीं है. इसके अलावा, यह भी हो सकता है कि अनुरोध करने वाला उपयोगकर्ता, कोर्स का शिक्षक या डोमेन एडमिन न हो.
कार्रवाई: बताएं कि लाइसेंसिंग या कोर्स की भूमिका की स्थिति की वजह से, आपका ऐप्लिकेशन ग्रेडिंग की अवधि की सेटिंग अपडेट करने का अनुरोध नहीं कर सकता. लाइसेंस, Google Admin console में असाइन किए जा सकते हैं.
एचटीटीपी 429: RESOURCE_EXHAUSTED
RESOURCE_EXHAUSTED
तब दिखता है, जब अनुरोध की गई कार्रवाई की अनुमति नहीं होती. ऐसा इसलिए होता है, क्योंकि कोटा या सर्वर की क्षमता जैसे कुछ संसाधन खत्म हो जाते हैं. अनुरोध से जुड़ी इस तरह की गड़बड़ियां आम तौर पर इसलिए होती हैं, क्योंकि आपके ऐप्लिकेशन पर बहुत ज़्यादा लोड है.
इन सीमाओं को ट्रिगर होने से रोकने और अपने ऐप्लिकेशन की विश्वसनीयता बढ़ाने के लिए, फिर से कोशिश करने की सुविधा का इस्तेमाल करें. फिर से कोशिश करने के मान्य तरीकों में ये शामिल हैं:
अनुरोध को फिर से आज़माने के लिए, ट्रंकेटेड एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करें. साथ ही, एक साथ कई अनुरोध करने वाले एनवायरमेंट में, अनुरोधों के थ्रूपुट को ज़्यादा से ज़्यादा करें.
टकराव से बचने के लिए, जिटर के साथ ट्रंकेटेड एक्स्पोनेंशियल बैकऑफ़ का इस्तेमाल करें. जिटर का इस्तेमाल करने से, आपके अनुरोधों को तेज़ी से पूरा किया जा सकता है. ऐसा इसलिए, क्योंकि इससे अनुरोधों में कुछ समय का अंतर आ जाता है.
अगर आपके ऐप्लिकेशन में, कोटा की सीमाओं की वजह से RESOURCE_EXHAUSTED
गड़बड़ियां दिखती हैं, तो कोटा बढ़ाने का अनुरोध सबमिट करें. ज़्यादा जानकारी के लिए, सहायता केंद्र का एपीआई के कोटे मॉनिटर करना लेख पढ़ें.
UserCourseJoinRateLimitReached
UserCourseJoinRateLimitReached
का मतलब है कि उपयोगकर्ता ने एक दिन में, पहले ही तय सीमा के मुताबिक कोर्स में शामिल होने का अनुरोध कर लिया है. ज़्यादा जानकारी के लिए, सहायता केंद्र के Groups की नीतियों और सीमाओं के बारे में जानकारी लेख में "ग्रुप में शामिल होने के न्योते और ग्रुप का साइज़" सेक्शन देखें.
कार्रवाई की जा सकती है: बताएं कि कोर्स में शामिल क्यों नहीं हुआ जा सका. साथ ही, उपयोगकर्ता को सुझाव दें कि वह कोर्स में शामिल होने से पहले एक दिन इंतज़ार करे.
एचटीटीपी 500: INTERNAL
INTERNAL
से पता चलता है कि अनुरोध को प्रोसेस करते समय कोई गड़बड़ी हुई है. INTERNAL
अनुरोध से जुड़ी गड़बड़ियों को भी अक्सर, अनुरोध को फिर से करने के लिए एक्सपोनेंशियल बैकऑफ़ का इस्तेमाल करके ठीक किया जा सकता है. अगर INTERNAL
गड़बड़ी बनी रहती है, तो इसकी शिकायत की जा सकती है. इसके लिए, Classroom API के सार्वजनिक समस्या ट्रैकर पर जाकर, गड़बड़ी की जानकारी दें.