Request Errors

أخطاء الطلب

يمكن أن يحتوي خطأ Classroom API على رمز خطأ لمساعدتك في تحديد السبب والتعامل مع الخطأ بشكل صحيح. استنادًا إلى الرمز، يمكنك إعادة محاولة الطلب أو توجيه المستخدمين لاتّخاذ إجراء معيّن.

تعرض هذه الصفحة بالتفصيل رموز الخطأ المحتمَلة، مجمّعة حسب رمز HTTP. للاطّلاع على مزيد من المعلومات عن بنية رسالة الخطأ، يمكنك الرجوع إلى بنية رسالة الخطأ.

تعرض هذه الصفحة بالتفصيل رموز الخطأ المحتمَلة، مجمّعة حسب رمز HTTP. راجِع المستندات المرجعية لتحديد الطرق التي تعرض أي رمز خطأ معيّن.

HTTP 400: FAILED_PRECONDITION

يتم عرض FAILED_PRECONDITION عندما يحاول المستخدم تنفيذ إجراء لا يمكن السماح به، إما بسبب وصول المستخدم إلى الحد الأقصى المسموح به أو حالة تطبيق، مثل CourseNotModifiable. لإصلاح FAILED_PRECONDITION، يمكنك توجيه المستخدم لاتخاذ إجراء ثم إعادة المحاولة. أو في بعض الحالات، يمكنك استخدام نقاط نهاية بديلة لإصلاح الحالة نيابةً عن المستخدم.

PendingInviteExists

تشير السمة PendingInvitationExists إلى أنّه سبق وتمت دعوة مستخدم آخر لامتلاك الدورة التدريبية. يحدث هذا الخطأ أثناء نقل ملكية الدورة التدريبية عندما بدأت عملية النقل في السابق ولكن لم يقبلها المالك الجديد بعد.

تم بلوغ الحد الأقصى لعدد أعضاء الدورة التدريبية

تشير السمة CourseMemberLimitReached إلى أنّ الإجراء الذي تمت محاولة تنفيذه سيتجاوز الحد الأقصى المسموح به لعدد أعضاء الدورة التدريبية. ويتم عادةً عرض هذا الرمز من خلال students.create(). لمزيد من المعلومات، يُرجى الرجوع إلى قسم "الحدّ الأقصى المسموح به لحجم الصف" في مقالة مركز المساعدة دعوة الطلاب للانضمام إلى صف.

الإجراء المحتمل: يُرجى وصف سبب الإخفاق واقتراح إزالة المستخدم لأعضاء الدورة التدريبية غير الضروريين.

الدورة التدريبية غير قابلة للتعديل

تشير السمة CourseNotModifiable إلى أنّ حالة الدورة التدريبية ذات الصلة لا تسمح بتعديل سماتها (بخلاف حالة الدورة التدريبية نفسها).

الإجراء المحتمل: اطلب من المستخدم تغيير الدورة التدريبية إلى حالة دورة تدريبية قابلة للتعديل. لتغيير الحالة، استخدِم courses.patch(). يمكن تغيير حالة الدورة التدريبية في طلب يؤدي إلى تغيير المواقع الأخرى.

تم بلوغ الحد الأقصى لعدد المعلّمين في الدورة التدريبية

تشير السمة CourseTeacherLimitReached إلى أنّ الإجراء المطلوب سيتجاوز الحد الأقصى المسموح به لعدد معلّمي الدورة التدريبية. ويتم عادةً عرض هذا الرمز من خلال teachers.create(). لمعرفة مزيد من المعلومات، يمكنك الرجوع إلى القسم "قيود حجم الصف" في مقالة مركز المساعدة إضافة معلّم مساعد إلى الصف.

الإجراء المحتمل: يُرجى وصف سبب الإخفاق واقتراح إزالة المستخدم لمعلمي الدورة التدريبية غير الضروريين. يمكنك استخدام teachers.delete() لإدارة قوائم المعلّمين نيابةً عن المستخدم إن كان ذلك منطبقًا على تطبيقك.

UserGroupsOrganizationDomain Reached

تشير الدالة UserGroupsMembershipLimitReached إلى أنّ المستخدم عضو حاليًا في الحد الأقصى المسموح به لعدد المجموعات ولا يمكنه الانضمام إلى أي دورات تدريبية. ويتم عادةً عرض هذا الرمز من خلال students.create() أو teachers.create(). لمزيد من المعلومات، يُرجى الرجوع إلى قسم "قيود حجم الصف" في مقالة مركز المساعدة دعوة الطلاب إلى صف.

الإجراء المحتمل: وصف سبب الإخفاق واقتراح مغادرة المستخدم لأي دورات تدريبية لا يشارك فيها. قد يفكر المستخدم في إنشاء حساب إضافي إذا كان بحاجة إلى المشاركة في المزيد من الدورات التدريبية. يمكنك استخدام students.create() أو teachers.delete() لإدارة قوائم الطلاب المسجّلين نيابةً عن المستخدم، إذا كان ذلك ينطبق على تطبيقك.

المرفق غير مرئي

يشير AttachmentNotVisible إلى أنّ مرفقًا واحدًا أو أكثر من المرفقات المحدّدة غير مرئي للمستخدم أو من النوع المطلوب أو غير موجود. على سبيل المثال، ستعرض عناصر Drive التي لم تتم مشاركتها مع المستخدم هذا الخطأ.

الإجراء المحتمل: يُرجى وصف سبب الفشل واقتراح إعادة فحص المعرّفات التي تم تضمينها، مثل أرقام تعريف ملفات Drive. تأكَّد أيضًا من أنّ المستخدم لديه الأذونات المناسبة لعرض المرفق.

لا يمكن إزالة الدورة التدريبيةمالك المجلد

تشير القيمة CannotRemoveCourseFolderOwner إلى إمكانية عدم إزالة مالك مجلد Drive الخاص بالدورة التدريبية.

الإجراء المحتمل: يُرجى وصف سبب الإخفاق واقتراح نقل المستخدم لملكية مجلد Drive للدورة التدريبية إلى مستخدم آخر وإعادة المحاولة.

لا يمكن إزالة مالك الدورة التدريبية

تشير السمة CannotRemoveCourseOwner إلى إمكانية عدم إزالة مالك الدورة الدراسية.

الإجراء المحتمل: يُرجى وصف سبب الإخفاق واقتراح عدم إزالة مالك الدورة الدراسية. يحاول المستخدم في معظم الحالات إزالة نفسه، وهو أمر غير مسموح به.

لا يمكن إزالة الدورة التدريبيةمالك غير مكتملة

تشير السمة CannotRemoveCourseOwnerTransferIncomplete إلى أنّه قد لا تتم إزالة مالك الدورة التدريبية لأنّ عملية نقل ملكية هذا الصف لا تزال قيد التقدّم.

الإجراء المحتمل: وصف سبب الإخفاق واقتراح أن ينتظر المستخدم بضع لحظات حتى يكتمل الإجراء غير المتزامن لنقل ملكية الصف، ثم حاول مرة أخرى.

لا يمكن إزالة المُعلّم باستخدامNoCourseOwner

تشير السمة CannotRemoveTeacherWithNoCourseOwner إلى أنّه لا يجوز إزالة معلّم من دورة دراسية بدون مالكها.

الإجراء المحتمل: يُرجى وصف سبب الإخفاق واقتراح عدم إزالة المعلّم. في معظم الحالات، تم حذف حساب المستخدم الخاص بمالك الدورة الدراسية، ما يؤدي إلى أن تكون حالة الدورة التدريبية غير صالحة.

مالك دورة تدريبية غير نشط

تشير السمة InactiveCourseOwner إلى أنّ الإجراء المطلوب غير مسموح به لأنّه تم حذف حساب مالك الدورة التدريبية. على مشرف مالك الدورة التدريبية استعادة حساب مالك الدورة التدريبية قبل اتخاذ الإجراء المطلوب.

الإجراء المحتمل: صِف سبب الإخفاق واقترح على المشرف استعادة حساب مالك الدورة التدريبية قبل إعادة محاولة العملية.

مالك غير مؤهَّل

تشير IneligibleOwner إلى أنّه لا يمكن إضافة المستخدم كمالك للدورة التدريبية لأنّ المستخدم ليس معلّمًا مساعدًا.

الإجراء المحتمل: يُرجى توضيح سبب الإخفاق. إذا لم يكن المستخدم الذي قدّم الطلب مشرفًا، يمكنك اقتراح أن يرسل أولاً دعوة إلى المستخدم ليصبح معلّمًا في الدورة التدريبية قبل تعديل معلومات المالك. إذا كان المستخدم الذي قدّم الطلب مشرفًا، يمكنك اقتراح إضافته أولاً كمعلّم مساعد في الدورة الدراسية.

دورة تدريبية حول المستخدم

تشير السمة UserCannotOwnCourse إلى أنّه لا يمكن إضافة المستخدم كمالك للدورة التدريبية.

الإجراء المحتمل: يُرجى وصف سبب الإخفاق واقتراح عدم إمكانية إنشاء الدورة التدريبية مع المستخدم بصفته مالك الدورة التدريبية. قد يظهر هذا الخطأ للمستخدم الذي لا يطلب الإذن بالوصول إلى المشرف إذا حاول إنشاء دورة تدريبية مع مستخدم آخر غير المالك. قد يظهر هذا الخطأ للمستخدم الذي يطلب الإذن بالوصول إلى الحساب إذا لم يكن حساب المستخدم الذي تم تحديده على أنه المالك متوفرًا أو إذا لم يكن المستخدم في نطاقه.

HTTP 429: RESOURCE_EXHAUSTED

يتم عرض RESOURCE_EXHAUSTED عندما يكون الإجراء المطلوب غير مسموح به بسبب استنفاد بعض الموارد، مثل الحصة أو سعة الخادم. عادةً ما تحدث هذه الأنواع من أخطاء الطلبات بسبب تحميل تطبيقك حمل زائد.

لتجنُّب تفعيل هذه الحدود وزيادة موثوقية تطبيقك، استخدِم آليات إعادة المحاولة. تشمل الآليات الصالحة لإعادة المحاولة ما يلي:

  • يمكنك استخدام ميزة التراجع الأسّي المقتطع لإعادة محاولة الطلب وزيادة سرعة معالجة الطلبات في البيئات المتزامنة.

  • لتجنُّب الاصطدامات، يمكنك استخدام تراجع أسّي مقطوع مع عدم استقرار. يمكن أن يساعد تقديم عدم الاستقرار في نجاح طلباتك بشكل أسرع من خلال تقديم تأخير عشوائي يؤدي إلى انتشار الزيادة في الطلبات.

إذا عرض طلبك خطأ واحد (RESOURCE_EXHAUSTED) بسبب القيود المفروضة على الحصة، أرسِل زيادة في الحصة. لمزيد من المعلومات، يُرجى الرجوع إلى مقالة مركز المساعدة مراقبة حصص واجهات برمجة التطبيقات.

تم بلوغ الحد الأقصى لعدد المشاركين في دورة المستخدم داخل الدورة التدريبية

تشير السمة UserCourseJoinRateLimitReached إلى أنّ المستخدم قد انضم إلى الحد الأقصى المسموح به لعدد الدورات التدريبية في يوم واحد. لمزيد من المعلومات، يمكنك الرجوع إلى قسم "دعوات المجموعات وحجمها" في مقالة مركز المساعدة فهم سياسات "مجموعات Google" وحدودها.

الإجراء المحتمل: وصف سبب الإخفاق واقتراح أن ينتظر المستخدم يومًا واحدًا قبل الانضمام إلى الدورة التدريبية.

HTTP 500: INTERNAL

تشير السمة INTERNAL إلى حدوث خطأ غير متوقّع أثناء معالجة الطلب. يمكن أيضًا غالبًا حل أخطاء طلبات INTERNAL باستخدام ميزة "التراجع الأسّي" لإعادة محاولة الطلب. في حال استمرار خطأ INTERNAL، يمكن الإبلاغ عنه من خلال تقديم خطأ على أداة تتبُّع المشاكل العامة في Classroom API.