پیام های خطای رایج Google Classroom API

این صفحه برخی از پیام‌های خطای رایج Google Classroom API، مشکلات و اقدامات احتمالی را برای انواع خطاهای زیر شرح می‌دهد:

HTTP 400: FAILED_PRECONDITION

یک FAILED_PRECONDITION برگردانده می‌شود زمانی که کاربر اقدامی را انجام می‌دهد که مجاز نیست، چه به این دلیل که کاربر به یک محدودیت یا یک وضعیت برنامه، مانند CourseNotModifiable رسیده است. برای رفع یک FAILED_PRECONDITION ، به کاربر دستور دهید تا اقدامی انجام دهد و سپس دوباره امتحان کنید. یا در برخی موارد، ممکن است از نقاط پایانی جایگزین برای رفع وضعیت از طرف کاربر استفاده کنید.

پیوست غیرقابل مشاهده

AttachmentNotVisible نشان می دهد که یک یا چند پیوست مشخص شده برای کاربر قابل مشاهده نیستند، از نوع درخواستی نیستند یا وجود ندارند. به عنوان مثال، موارد Drive که با کاربر به اشتراک گذاشته نشده است، این خطا را برمی گرداند.

اقدام ممکن : علت خرابی را شرح دهید و به کاربر پیشنهاد دهید که شناسه هایی مانند شناسه فایل Drive را که در آن گنجانده است دوباره بررسی کند. همچنین، اطمینان حاصل کنید که کاربر مجوزهای مناسب برای مشاهده پیوست را دارد.

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner نشان می دهد که ممکن است مالک پوشه Drive دوره حذف نشود.

اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید که مالکیت پوشه Drive دوره را به کاربر دیگری منتقل کند و دوباره امتحان کند.

CannotRemoveCourseOwner

CannotRemoveCourseOwner نشان می دهد که ممکن است مالک دوره حذف نشود.

اقدام ممکن : علت شکست را شرح دهید و پیشنهاد کنید که ممکن است مالک دوره حذف نشود. در بیشتر موارد، کاربر سعی در حذف خود دارد که مجاز نیست.

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete نشان می دهد که ممکن است مالک دوره حذف نشود زیرا انتقال مالکیت این کلاس هنوز در حال انجام است.

اقدام احتمالی : علت خرابی را شرح دهید و به کاربر پیشنهاد دهید که چند لحظه صبر کند تا عمل ناهمزمان انتقال مالکیت کلاس کامل شود، سپس دوباره امتحان کند.

CannotRemove TeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner نشان می دهد که ممکن است معلمی از دوره بدون مالک حذف نشود.

اقدام ممکن : علت شکست را شرح دهید و پیشنهاد کنید که ممکن است معلم حذف نشود. در بیشتر موارد، حساب کاربری صاحب دوره حذف شد و باعث ایجاد وضعیت دوره نامعتبر شد.

CourseMemberLimitReached

CourseMemberLimitReached نشان می دهد که اقدام انجام شده از حداکثر تعداد مجاز اعضای دوره بیشتر خواهد شد. این کد معمولاً توسط students.create() برگردانده می شود .

اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید اعضای غیرضروری دوره را حذف کند

CourseNotModifiable

CourseNotModifiable نشان می دهد که دوره مربوطه در حالتی است که اجازه نمی دهد ویژگی های آن تغییر یابد (به غیر از خود حالت دوره).

اقدام ممکن : از کاربر بخواهد دوره را به وضعیت دوره قابل تغییر تغییر دهد. برای تغییر حالت، از courses.patch() استفاده کنید. وضعیت دوره را می توان در درخواستی که ویژگی های دیگر را تغییر می دهد تغییر داد.

CourseTeacherLimitReached

CourseTeacherLimitReached نشان می دهد که اقدام درخواستی از حداکثر تعداد مجاز معلمان دوره بیشتر خواهد شد. این کد معمولاً توسط متد teachers.create() برگردانده می شود. برای اطلاعات بیشتر، به بخش «محدودیت‌های اندازه کلاس» در مقاله «افزودن یک معلم کمکی به مرکز راهنمایی کلاس» مراجعه کنید.

اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید معلمان دوره غیرضروری را حذف کند. اگر برای برنامه شما قابل اجرا است، می‌توانید از روش teachers.delete() برای مدیریت فهرست معلمان از طرف کاربر استفاده کنید.

CourseTopicLimitReached

CourseTopicLimitReached نشان می دهد که اقدام درخواستی از حداکثر تعداد مجاز موضوعات در یک دوره بیشتر می شود. این کد معمولاً با متد courses.topics.create() بازگردانده می شود.

اقدام ممکن : علت خرابی را شرح دهید و به کاربر پیشنهاد دهید موضوعات غیرضروری را حذف کند. اگر برای برنامه شما کاربرد دارد، می‌توانید از روش courses.topics.delete() برای مدیریت موضوعات از طرف کاربر استفاده کنید.

InactiveCourseOwner

InactiveCourseOwner نشان می دهد که اقدام درخواستی مجاز نیست زیرا حساب مالک دوره حذف شده است. مدیر مالک دوره باید قبل از انجام اقدام درخواستی، حساب مالک دوره را بازیابی کند.

اقدام ممکن : علت شکست را شرح دهید و به مدیر پیشنهاد کنید قبل از امتحان مجدد عملیات ، حساب صاحب دوره را بازیابی کند .

مالک غیر واجد شرایط

IneligibleOwner نشان می دهد که کاربر نمی تواند به عنوان مالک دوره اضافه شود زیرا کاربر یک معلم مشترک نیست.

اقدام ممکن : علت شکست را شرح دهید. اگر کاربر درخواست‌کننده سرپرست نیست، پیشنهاد کنید ابتدا قبل از به‌روزرسانی مالک، دعوت‌نامه‌ای برای معلم بودن در دوره برای کاربر ارسال کند. اگر کاربر درخواست کننده یک مدیر است، پیشنهاد دهید که ابتدا کاربر را به عنوان معلم همکار دوره اضافه کنند.

در انتظار دعوت وجود دارد

PendingInvitationExists نشان می دهد که شخصی قبلاً برای در اختیار گرفتن مالکیت دوره دعوت شده است. این خطا در حین انتقال مالکیت دوره زمانی رخ می دهد که انتقال قبلا شروع شده بود اما هنوز توسط مالک جدید پذیرفته نشده است.

UserCannotOwnCourse

UserCannotOwnCourse نشان می دهد که کاربر نمی تواند به عنوان مالک دوره اضافه شود.

اقدام احتمالی : علت شکست را شرح دهید و پیشنهاد کنید که دوره را نمی توان با کاربر به عنوان مالک دوره ایجاد کرد. کاربر غیر مدیر درخواست کننده ممکن است این خطا را ببیند اگر بخواهد دوره ای را با کاربری غیر از خود به عنوان مالک ایجاد کند. مدیر درخواست کننده کاربر ممکن است این خطا را ببیند اگر حساب کاربری مشخص شده به عنوان مالک وجود نداشته باشد یا کاربر در دامنه خود نباشد.

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached نشان می دهد که کاربر در حال حاضر عضو حداکثر تعداد مجاز گروه است و نمی تواند به هیچ دوره ای بپیوندد. این کد معمولاً توسط students.create() یا teachers.create() برگردانده می شود. برای اطلاعات بیشتر، به بخش «محدودیت‌های اندازه کلاس» در مقاله دعوت از دانش‌آموزان به مرکز راهنمایی کلاس مراجعه کنید.

اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید دوره هایی را که در آن شرکت نمی کند ترک کند. اگر کاربر نیاز به شرکت در دوره های بیشتری داشته باشد، ممکن است ایجاد یک حساب کاربری اضافی را در نظر بگیرد. اگر برای برنامه شما قابل اجرا است، می‌توانید students.create() یا teachers.delete() برای مدیریت فهرست‌ها از طرف کاربر استفاده کنید.

HTTP 403: PERMISSION_DENIED

اگر کاربر نهایی پیش نیازهای دسترسی را نداشته باشد، ممکن است همه روش‌های Classroom API یک خطای PERMISSION_DENIED (HTTP 403) برگردانند. پیام همراه با خطا حاوی یک پیام خطا است تا به شما کمک کند علت را شناسایی کرده و کاربران را برای انجام اقدامات مناسب راهنمایی کنید.

بخش‌های زیر پیام‌های خطای رایج Classroom API را توضیح می‌دهند.

CannotDirectAddUser

CannotDirectAddUser نشان می دهد که کاربر نمی تواند مستقیماً به دوره اضافه شود. این کد زمانی اتفاق می‌افتد که یک مدیر دامنه سعی می‌کند کاربری را به دوره اضافه کند و آن کاربر یا آدرس ایمیل ندارد یا به دامنه تعلق ندارد.

اقدام ممکن : علت خرابی را توضیح دهید و به مدیر دامنه پیشنهاد دهید که حساب کاربری وجود داشته باشد و در دامنه مدیریت دوره است.

ClassroomApiDisabled

ClassroomApiDisabled نشان می دهد که کاربر درخواست کننده به Classroom API دسترسی ندارد.

اقدام ممکن : کاربر را به دستورالعمل های فعال کردن دسترسی به داده های Classroom هدایت کنید. همچنین ClassroomDisabled را ببینید، زیرا ممکن است کاربر از حساب اشتباهی استفاده کند.

Classroom Disabled

ClassroomDisabled نشان می دهد که کاربر درخواست کننده به Classroom دسترسی ندارد.

اقدام ممکن : کاربر را به دستورالعمل‌های فعال کردن دسترسی Classroom هدایت کنید. همچنین ممکن است کاربر از حساب اشتباهی استفاده کند، بنابراین ممکن است پیوندی به استفاده از چندین حساب نیز ارائه دهید تا کاربر بتواند حساب صحیح را انتخاب کند.

ExpiredAddOnToken

ExpiredAddOnToken نشان می دهد که نشانه افزودنی مورد استفاده برای برقراری تماس با API منقضی شده است.

اقدام احتمالی : از کاربر بخواهید صفحه را بازخوانی کند یا دوباره به افزونه وارد شود تا بتوانید پارامتر پرس و جوی جدید addOnToken از URL درخواست دریافت کنید.

InvalidAddOnToken

InvalidAddOnToken نشان می دهد که نشانه افزودنی ارسال شده در یک درخواست مجاز به ایجاد یک پیوست افزودنی در تکلیف نیست.

اقدام ممکن : اگر کاربر با حسابی متفاوت از حساب موجود در Classroom به افزونه وارد شود، این خطا رخ می دهد. به کاربر دستور دهید یا از همه حساب‌های دیگر در مرورگر خارج شود یا Classroom را در پنجره ناشناس Chrome باز کند.

ProjectPermissionDenied

ProjectPermissionDenied نشان می‌دهد که این درخواست سعی در تغییر منبع مرتبط با یک پروژه دیگر Developer Console دارد.

اقدام ممکن : نشان می دهد که برنامه شما نمی تواند درخواست مورد نظر را انجام دهد. فقط می تواند توسط پروژه Developer Console از شناسه مشتری OAuth که منبع را ایجاد کرده است ساخته شود.

UserIneligibleToUpdateGradingPeriodSettings

UserIneligibleToUpdateGradingPeriodSettings نشان می‌دهد که درخواست تلاش برای تغییر تنظیمات دوره رتبه‌بندی در دوره‌ای است که کاربر درخواست‌کننده یا مالک دوره مجوز مناسب Google Workspace for Education را ندارند.

اقدام ممکن : نشان می دهد که برنامه شما نمی تواند درخواست مورد نظر را برای به روز رسانی تنظیمات دوره رتبه بندی به دلیل وضعیت مجوز کاربر درخواست کننده یا صاحب دوره ارائه دهد. مجوزها را می توان در کنسول Google Admin اختصاص داد.

HTTP 429: RESOURCE_EXHAUSTED

RESOURCE_EXHAUSTED زمانی برگردانده می شود که اقدام درخواستی مجاز نباشد زیرا برخی از منابع، مانند سهمیه یا ظرفیت سرور، تمام شده است. این نوع از خطاهای درخواست معمولاً به این دلیل رخ می دهد که برنامه شما بارگذاری بیش از حد ایجاد کرده است.

برای جلوگیری از ایجاد این محدودیت ها و افزایش قابلیت اطمینان برنامه خود، از مکانیسم های امتحان مجدد استفاده کنید. مکانیسم های امتحان مجدد معتبر عبارتند از:

  • برای امتحان مجدد درخواست و به حداکثر رساندن توان عملیاتی درخواست ها در محیط های همزمان، از عقب نشینی نمایی کوتاه شده استفاده کنید.

  • برای جلوگیری از برخورد، عقب نشینی نمایی کوتاه شده را با جیتر در نظر بگیرید. معرفی جیتر می‌تواند به موفقیت سریع‌تر درخواست‌های شما با معرفی تاخیر تصادفی کمک کند که باعث افزایش سرعت درخواست‌ها می‌شود.

اگر درخواست شما به دلیل محدودیت های سهمیه، خطاهای RESOURCE_EXHAUSTED برمی گرداند، افزایش سهمیه ارسال کنید. برای اطلاعات بیشتر، به مقاله مرکز راهنمایی سهمیه های API Monitor مراجعه کنید.

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached نشان می دهد که کاربر قبلاً به حداکثر تعداد مجاز دوره در یک روز ملحق شده است. برای کسب اطلاعات بیشتر، به بخش «دعوت‌نامه‌ها و اندازه گروه» در مقاله مرکز راهنمایی درک خط‌مشی‌ها و محدودیت‌های گروه‌ها مراجعه کنید.

اقدام ممکن : علت شکست را شرح دهید و به کاربر پیشنهاد دهید که یک روز قبل از پیوستن به دوره منتظر بماند.

HTTP 500: INTERNAL

INTERNAL نشان می دهد که یک خطای غیرمنتظره هنگام پردازش درخواست رخ داده است. خطاهای درخواست INTERNAL را نیز می توان اغلب با استفاده از عقب نشینی نمایی برای امتحان مجدد درخواست حل کرد. اگر یک خطای INTERNAL ادامه داشت، می‌توان آن را با ثبت یک اشکال در ردیاب عمومی مشکل API Classroom گزارش کرد.