इस पेज पर, 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 से पता चलता है कि उपयोगकर्ता को कोर्स के मालिक के तौर पर नहीं जोड़ा जा सकता, क्योंकि वह सह-शिक्षक नहीं है.
संभावित कार्रवाई: अनुरोध पूरा न होने की वजह बताएं. अगर अनुरोध करने वाला उपयोगकर्ता एडमिन नहीं है, तो उसे सुझाव दें कि वह मालिक की भूमिका अपडेट करने से पहले, उपयोगकर्ता को कोर्स में शिक्षक बनने का न्योता भेजे. अगर अनुरोध करने वाला व्यक्ति एडमिन है, तो उसे सुझाव दें कि वह पहले उपयोगकर्ता को कोर्स का सह-शिक्षक बनाए.
ListCoursesStudentAndTeacherFilter
ListCoursesStudentAndTeacherFilter तब होता है, जब courses.list() अनुरोध करते समय दोनों teacherId और studentId फ़ील्ड में वैल्यू मौजूद होती हैं. एक अनुरोध में, इनमें से सिर्फ़ एक फ़ील्ड सेट किया जा सकता है.
हालांकि, अब भी दो अलग-अलग अनुरोध करके, छात्र-छात्राओं और शिक्षकों के लिए उपलब्ध कोर्स की सूची पाई जा सकती है. सबसे पहले, शिक्षक के तौर पर रजिस्टर किए गए उपयोगकर्ता के कोर्स वापस पाएं. इसके लिए, teacherId फ़ील्ड में जानकारी भरकर courses.list() अनुरोध करें. इसके बाद, studentId फ़ील्ड में जानकारी भरकर दूसरा courses.list() अनुरोध करें.
दोनों उपयोगकर्ताओं के लिए मैच होने वाले कोर्स की सूची पाने के लिए, नतीजों के इंटरसेक्शन का हिसाब लगाएं.
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 से पता चलता है कि किसी उपयोगकर्ता को सीधे तौर पर कोर्स में नहीं जोड़ा जा सकता. यह कोड तब दिखता है, जब कोई डोमेन एडमिन किसी उपयोगकर्ता को किसी कोर्स में जोड़ने की कोशिश करता है. ऐसा तब होता है, जब उस उपयोगकर्ता के पास ईमेल पता नहीं होता या वह डोमेन का सदस्य नहीं होता.
संभावित कार्रवाई: फ़ेल होने की वजह बताएं. साथ ही, डोमेन एडमिन को यह सुझाव दें कि वह पुष्टि करे कि उपयोगकर्ता खाता मौजूद है और कोर्स एडमिन के डोमेन में है.
CannotInviteUserInUntrustedDomain
CannotInviteUserInUntrustedDomain का मतलब है कि जिस उपयोगकर्ता को न्योता भेजा जा रहा है या बनाया जा रहा है वह कॉल करने वाले व्यक्ति के डोमेन में नहीं है. इसके अलावा, वह भरोसेमंद डोमेन में भी नहीं है. Google Workspace for Education Fundamentals लाइसेंस वाले कॉल करने वालों के लिए, डोमेन से बाहर के ऐसे उपयोगकर्ताओं को सीधे तौर पर किसी कोर्स में न तो जोड़ा जा सकता है और न ही उन्हें न्योता भेजा जा सकता है जो भरोसेमंद नहीं हैं.
संभावित कार्रवाई: कॉल पूरी न होने की वजह बताएं. साथ ही, कॉल करने वाले व्यक्ति को इनमें से कोई एक विकल्प चुनने का सुझाव दें:
- कॉल करने और कॉल पाने वाले उपयोगकर्ताओं के डोमेन को एक-दूसरे की भरोसेमंद डोमेन सूची में शामिल करें. इसके बाद, फिर से कोशिश करें.
- कॉल करने वाले व्यक्ति को सुझाव दें कि वह कोर्स में शामिल होने का न्योता देने वाला लिंक या क्लास में शामिल होने का कोड मैन्युअल तरीके से शेयर करे. ध्यान दें कि इसके लिए, एडमिन को डोमेन से बाहर के लोगों को न्योता भेजने की सुविधा कॉन्फ़िगर करनी होगी. ज़्यादा जानने के लिए, छात्र-छात्राओं को अपनी क्लास में शामिल होने का न्योता भेजना लेख पढ़ें.
- कॉल करने वाले व्यक्ति को सुझाव दें कि वह पैसे चुकाकर Google Workspace for Education का लाइसेंस ले. ऐसा इसलिए, क्योंकि यह सीमा सिर्फ़ Fundamentals के लाइसेंस पर लागू होती है.
ClassroomApiDisabled
ClassroomApiDisabled से पता चलता है कि अनुरोध करने वाले उपयोगकर्ता के पास Classroom API का ऐक्सेस नहीं है.
कार्रवाई का सुझाव: उपयोगकर्ता को Classroom के डेटा को ऐक्सेस करने की सुविधा चालू करने के निर्देशों पर भेजें. ClassroomDisabled भी देखें, क्योंकि हो सकता है कि उपयोगकर्ता गलत खाते का इस्तेमाल कर रहा हो.
ClassroomDisabled
ClassroomDisabled से पता चलता है कि अनुरोध करने वाले उपयोगकर्ता के पास Classroom का ऐक्सेस नहीं है.
कार्रवाई की जा सकती है: उपयोगकर्ता को Classroom का ऐक्सेस चालू करने के निर्देशों पर रीडायरेक्ट करें. ऐसा हो सकता है कि उपयोगकर्ता गलत खाते का इस्तेमाल कर रहा हो. इसलिए, एक से ज़्यादा खातों का इस्तेमाल करने के बारे में जानकारी देने वाला लिंक भी उपलब्ध कराएं, ताकि उपयोगकर्ता सही खाता चुन सके.
ExpiredAddOnToken
ExpiredAddOnToken से पता चलता है कि एपीआई को कॉल करने के लिए इस्तेमाल किए जा रहे ऐड-ऑन टोकन की समयसीमा खत्म हो गई है.
कार्रवाई की जा सकती है: उपयोगकर्ता को पेज रीफ़्रेश करने या ऐड-ऑन में फिर से साइन इन करने के लिए कहें, ताकि आपको अनुरोध यूआरएल से नया addOnToken क्वेरी पैरामीटर मिल सके.
InvalidAddOnToken
InvalidAddOnToken से पता चलता है कि अनुरोध में पास किया गया ऐड-ऑन टोकन, असाइनमेंट में ऐड-ऑन अटैचमेंट बनाने के लिए अधिकृत नहीं है.
कार्रवाई की जा सकती है: अगर उपयोगकर्ता Classroom में इस्तेमाल किए जा रहे खाते के बजाय किसी दूसरे खाते से ऐड-ऑन में साइन इन करता है, तो यह गड़बड़ी दिख सकती है. उपयोगकर्ता को ब्राउज़र में मौजूद सभी खातों से साइन आउट करने या Chrome की गुप्त विंडो में Classroom खोलने के लिए कहें.
ProjectPermissionDenied
ProjectPermissionDenied से पता चलता है कि अनुरोध में, किसी ऐसे संसाधन में बदलाव करने की कोशिश की गई है जो किसी दूसरे Developer Console प्रोजेक्ट से जुड़ा है.
कार्रवाई की जा सकती है: बताएं कि आपका ऐप्लिकेशन, अनुरोध नहीं कर सकता. यह अनुरोध सिर्फ़ उस OAuth क्लाइंट आईडी के Developer Console प्रोजेक्ट से किया जा सकता है जिसने संसाधन बनाया है.
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 के सार्वजनिक समस्या ट्रैकर पर जाकर, बग की शिकायत की जा सकती है.