درخواست خطاها
یک خطای Classroom API میتواند حاوی یک کد خطا باشد تا به شما در شناسایی علت و مدیریت صحیح خطا کمک کند. بسته به کد، ممکن است درخواست را دوباره امتحان کنید یا به کاربران هدایت کنید تا اقدام خاصی انجام دهند.
این صفحه کدهای خطای احتمالی را که بر اساس کد HTTP گروه بندی شده اند، شرح می دهد. برای مطالعه بیشتر در مورد ساختار پیام خطا، به ساختار پیام خطا مراجعه کنید.
این صفحه کدهای خطای احتمالی را که بر اساس کد HTTP گروه بندی شده اند، شرح می دهد. برای تعیین اینکه کدام روش کد خطای خاص را برمی گرداند، به مستندات مرجع مراجعه کنید.
HTTP 400: FAILED_PRECONDITION
یک FAILED_PRECONDITION
برگردانده میشود زمانی که کاربر اقدامی را انجام میدهد که مجاز نیست، چه به این دلیل که کاربر به یک محدودیت یا یک وضعیت برنامه، مانند CourseNotModifiable
رسیده است. برای رفع یک FAILED_PRECONDITION
، به کاربر دستور دهید تا اقدامی انجام دهد و سپس دوباره امتحان کنید. یا در برخی موارد، ممکن است از نقاط پایانی جایگزین برای رفع وضعیت از طرف کاربر استفاده کنید.
در انتظار دعوت وجود دارد
PendingInvitationExists
نشان می دهد که شخصی قبلاً برای در اختیار گرفتن مالکیت دوره دعوت شده است. این خطا در حین انتقال مالکیت دوره زمانی رخ می دهد که انتقال قبلا شروع شده بود اما هنوز توسط مالک جدید پذیرفته نشده است.
CourseMemberLimitReached
CourseMemberLimitReached
نشان می دهد که اقدام انجام شده از حداکثر تعداد مجاز اعضای دوره بیشتر خواهد شد. این کد معمولاً توسط student.create students.create()
برگردانده می شود.
اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید اعضای غیرضروری دوره را حذف کند
CourseNotModifiable
CourseNotModifiable
نشان می دهد که دوره مربوطه در حالتی است که اجازه نمی دهد ویژگی های آن تغییر یابد (به غیر از خود حالت دوره).
اقدام ممکن : از کاربر بخواهد دوره را به وضعیت دوره قابل تغییر تغییر دهد. برای تغییر حالت، از courses.patch()
استفاده کنید. وضعیت دوره را می توان در درخواستی که ویژگی های دیگر را تغییر می دهد تغییر داد.
CourseTeacherLimitReached
CourseTeacherLimitReached
نشان می دهد که اقدام درخواستی از حداکثر تعداد مجاز معلمان دوره بیشتر خواهد شد. این کد معمولاً توسط teachers.create()
برگردانده می شود. برای اطلاعات بیشتر، به بخش «محدودیتهای اندازه کلاس» در مقاله «افزودن یک معلم کمکی به مرکز راهنمایی کلاس» مراجعه کنید.
اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید معلمان دوره غیرضروری را حذف کند. اگر برای برنامه شما قابل اجرا است، میتوانید از () teachers.delete برای مدیریت فهرست معلمان از طرف کاربر استفاده کنید.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
نشان می دهد که کاربر در حال حاضر عضو حداکثر تعداد مجاز گروه است و نمی تواند به هیچ دوره ای بپیوندد. این کد معمولاً توسط students.create()
یا teachers.create()
برگردانده می شود. برای اطلاعات بیشتر، به بخش «محدودیتهای اندازه کلاس» در مقاله دعوت از دانشآموزان به مرکز راهنمایی کلاس مراجعه کنید.
اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید دوره هایی را که در آن شرکت نمی کند ترک کند. اگر کاربر نیاز به شرکت در دوره های بیشتری داشته باشد، ممکن است ایجاد یک حساب کاربری اضافی را در نظر بگیرد. اگر برای برنامه شما قابل اجرا است، میتوانید از students.create()
یا teachers.delete()
برای مدیریت فهرستها از طرف کاربر استفاده کنید.
پیوست غیرقابل مشاهده
AttachmentNotVisible
نشان می دهد که یک یا چند پیوست مشخص شده برای کاربر قابل مشاهده نیستند، از نوع درخواستی نیستند یا وجود ندارند. به عنوان مثال، موارد Drive که با کاربر به اشتراک گذاشته نشده است، این خطا را برمی گرداند.
اقدام ممکن : علت خرابی را شرح دهید و به کاربر پیشنهاد دهید که شناسه هایی مانند شناسه فایل Drive را که در آن گنجانده است دوباره بررسی کند. همچنین، اطمینان حاصل کنید که کاربر مجوزهای مناسب برای مشاهده پیوست را دارد.
CannotRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
نشان می دهد که ممکن است مالک پوشه Drive دوره حذف نشود.
اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید که مالکیت پوشه Drive دوره را به کاربر دیگری منتقل کند و دوباره امتحان کند.
CannotRemoveCourseOwner
CannotRemoveCourseOwner
نشان می دهد که ممکن است مالک دوره حذف نشود.
اقدام ممکن : علت شکست را شرح دهید و پیشنهاد کنید که ممکن است مالک دوره حذف نشود. در بیشتر موارد، کاربر سعی در حذف خود دارد که مجاز نیست.
CannotRemoveCourseOwnerTransferIncomplete
CannotRemoveCourseOwnerTransferIncomplete
نشان می دهد که ممکن است مالک دوره حذف نشود زیرا انتقال مالکیت این کلاس هنوز در حال انجام است.
اقدام احتمالی : علت خرابی را شرح دهید و به کاربر پیشنهاد دهید که چند لحظه صبر کند تا عمل ناهمزمان انتقال مالکیت کلاس کامل شود، سپس دوباره امتحان کند.
CannotRemove TeacherWithNoCourseOwner
CannotRemoveTeacherWithNoCourseOwner
نشان می دهد که ممکن است معلمی از دوره بدون مالک حذف نشود.
اقدام ممکن : علت شکست را شرح دهید و پیشنهاد کنید که ممکن است معلم حذف نشود. در بیشتر موارد، حساب کاربری صاحب دوره حذف شد و باعث ایجاد وضعیت دوره نامعتبر شد.
InactiveCourseOwner
InactiveCourseOwner
نشان می دهد که اقدام درخواستی مجاز نیست زیرا حساب مالک دوره حذف شده است. ادمین صاحب دوره باید قبل از انجام اقدام درخواستی، حساب مالک دوره را بازیابی کند.
اقدام ممکن : علت شکست را شرح دهید و به مدیر پیشنهاد کنید قبل از امتحان مجدد عملیات ، حساب صاحب دوره را بازیابی کند .
مالک غیر واجد شرایط
IneligibleOwner
نشان می دهد که کاربر نمی تواند به عنوان مالک دوره اضافه شود زیرا کاربر یک معلم مشترک نیست.
اقدام ممکن : علت شکست را شرح دهید. اگر کاربر درخواستکننده مدیر نیست، پیشنهاد کنید ابتدا قبل از بهروزرسانی مالک، دعوتنامهای برای معلم بودن در دوره برای کاربر ارسال کند. اگر کاربر درخواست کننده یک مدیر است، پیشنهاد دهید که ابتدا کاربر را به عنوان معلم همکار دوره اضافه کنند.
UserCannotOwnCourse
UserCannotOwnCourse
نشان می دهد که کاربر نمی تواند به عنوان مالک دوره اضافه شود.
اقدام احتمالی : علت شکست را شرح دهید و پیشنهاد کنید که دوره را نمی توان با کاربر به عنوان مالک دوره ایجاد کرد. یک کاربر غیر مدیر درخواست کننده ممکن است این خطا را ببیند اگر بخواهد دوره ای را با کاربری غیر از خودش به عنوان مالک ایجاد کند. اگر حساب کاربری مشخص شده به عنوان مالک وجود نداشته باشد یا کاربر در دامنه خود نباشد، ممکن است یک کاربر درخواست کننده مدیر این خطا را ببیند.
HTTP 429: RESOURCE_EXHAUSTED
RESOURCE_EXHAUSTED
زمانی برگردانده می شود که اقدام درخواستی مجاز نباشد زیرا برخی از منابع، مانند سهمیه یا ظرفیت سرور، تمام شده است. این نوع از خطاهای درخواست معمولاً به این دلیل رخ می دهد که برنامه شما بارگذاری بیش از حد ایجاد کرده است.
برای جلوگیری از ایجاد این محدودیت ها و افزایش قابلیت اطمینان برنامه خود، از مکانیسم های امتحان مجدد استفاده کنید. مکانیسم های امتحان مجدد معتبر عبارتند از:
برای امتحان مجدد درخواست و به حداکثر رساندن توان عملیاتی درخواست ها در محیط های همزمان، از عقب نشینی نمایی کوتاه شده استفاده کنید.
برای جلوگیری از برخورد، عقب نشینی نمایی کوتاه شده را با جیتر در نظر بگیرید. معرفی جیتر میتواند به موفقیت سریعتر درخواستهای شما با معرفی تاخیر تصادفی کمک کند که باعث افزایش سرعت درخواستها میشود.
اگر درخواست شما به دلیل محدودیت های سهمیه، خطاهای RESOURCE_EXHAUSTED
را برمی گرداند، افزایش سهمیه ارسال کنید. برای اطلاعات بیشتر، به مقاله مرکز راهنمایی سهمیه های API Monitor مراجعه کنید.
UserCourseJoinRateLimitReached
UserCourseJoinRateLimitReached
نشان می دهد که کاربر قبلاً به حداکثر تعداد مجاز دوره در یک روز ملحق شده است. برای کسب اطلاعات بیشتر، به بخش «دعوتنامهها و اندازه گروه» در مقاله مرکز راهنمایی درک خطمشیها و محدودیتهای گروهها مراجعه کنید.
اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید که یک روز قبل از پیوستن به دوره منتظر بماند.
HTTP 500: INTERNAL
INTERNAL
نشان می دهد که یک خطای غیرمنتظره هنگام پردازش درخواست رخ داده است. خطاهای درخواست INTERNAL
را نیز می توان اغلب با استفاده از عقب نشینی نمایی برای امتحان مجدد درخواست حل کرد. اگر یک خطای INTERNAL
ادامه داشت، میتوان آن را با ثبت یک اشکال در ردیاب عمومی مشکل API Classroom گزارش کرد.