שגיאות בקשה
שגיאה ב-Classroom API יכולה לכלול קוד שגיאה שיעזור לכם לזהות את הגורם לבעיה ולטפל בה כראוי. בהתאם לקוד, אפשר לנסות שוב את הבקשה או להנחות את המשתמשים לבצע פעולה מסוימת.
בדף זה מפורטים קודי השגיאה האפשריים. הם מקובצים באמצעות קוד HTTP. מידע נוסף על המבנה של הודעת השגיאה זמין במאמר מבנה הודעת השגיאה.
בדף זה מפורטים קודי השגיאה האפשריים. הם מקובצים באמצעות קוד HTTP. אפשר לעיין במסמכי התיעוד כדי לקבוע אילו שיטות מחזירות קוד שגיאה מסוים.
HTTP 400: FAILED_PRECONDITION
FAILED_PRECONDITION
מוחזר כאשר המשתמש מנסה לבצע פעולה שאינה מותרת, מכיוון שהמשתמש הגיע למגבלה או למצב אפליקציה כגון CourseNotModifiable
. כדי לתקן FAILED_PRECONDITION
, צריך להנחות את המשתמש לבצע פעולה כלשהי ואז לנסות שוב. לחלופין, במקרים מסוימים אפשר להשתמש בנקודות קצה חלופיות כדי לתקן את המצב בשם המשתמש.
PendingInvitationExists
PendingInvitationExists
מציין שמישהו כבר הוזמן לקבל בעלות על הקורס. השגיאה הזו מתרחשת במהלך העברת הבעלות על הקורס, כשהעברה החלה בעבר, אבל הבעלים החדש עדיין לא אישר אותה.
CourseMemberLimitReached
CourseMemberLimitReached
מציין שהפעולה שמנסים לבצע תחרוג מהמספר המקסימלי המותר של חברי קורס. הקוד הזה מוחזר בדרך כלל על ידי students.create()
. למידע נוסף, אפשר לקרוא את הקטע 'מגבלות גודל הכיתה' במאמר הזמנת תלמידים לכיתה במרכז העזרה.
פעולה אפשרית: תיאור הגורם לכישלון והצעה למשתמש להסיר חברים מהקורס שאינם נחוצים
CourseNotModifiable
CourseNotModifiable
מציין שהקורס הרלוונטי נמצא במצב שלא מאפשר לשנות את המאפיינים שלו (מלבד מצב הקורס עצמו).
פעולה אפשרית: הצגת בקשה למשתמש לשנות את הקורס למצב שניתן לשינוי. כדי לשנות את המצב, יש להשתמש ב-courses.patch()
. אפשר לשנות את מצב הקורס בבקשה שמשנה מאפיינים אחרים.
CourseTeacherLimitReached
CourseTeacherLimitReached
מציין שהפעולה המבוקשת תחרוג מהמספר המקסימלי המותר של מורים בקורס. קוד זה מוחזר בדרך כלל על ידי teachers.create()
. למידע נוסף, אפשר לקרוא את הקטע 'מגבלות גודל הכיתה' במאמר הוספת מורה עמית/ה לכיתה במרכז העזרה.
פעולה אפשרית: תיאור הסיבה לכישלון והצעה למשתמש להסיר מורים מיותרים בקורס. אם זה רלוונטי לאפליקציה שלכם, אפשר להשתמש בפונקציה teachers.delete() כדי לנהל רשימות תלמידים של מורים בשם המשתמש.
UserGroupsMembershipLimitReached
UserGroupsMembershipLimitReached
מציין שהמשתמש כבר חבר במספר הקבוצות המקסימלי המותר ולא יכול להצטרף לאף קורס. קוד זה מוחזר בדרך כלל על ידי students.create()
או teachers.create()
. מידע נוסף זמין בקטע 'מגבלות גודל הכיתה' במאמר הזמנת תלמידים לכיתה במרכז העזרה.
פעולה אפשרית: תיאור הסיבה לכישלון והצעה שהמשתמש יעזוב קורסים שבהם הוא לא משתתף. המשתמש יכול ליצור חשבון נוסף אם הוא צריך להשתתף בקורסים נוספים. אם זה רלוונטי לאפליקציה שלך, אפשר להשתמש ב-students.create()
או ב-teachers.delete()
כדי לנהל רשימות תלמידים בשם המשתמש.
AttachmentNotVisible
AttachmentNotVisible
מציין שקובץ מצורף אחד או יותר שצוינו אינם גלויים למשתמש, אינם מהסוג המבוקש או שאינם קיימים. לדוגמה, פריטים ב-Drive שלא שותפו עם המשתמש יחזירו את השגיאה הזו.
פעולה אפשרית: יש לתאר את הגורם לכישלון ולהציע למשתמש לבדוק מחדש את המזהים שצוינו, כמו מזהי הקבצים ב-Drive. כמו כן, צריך לוודא שלמשתמש יש את ההרשאות המתאימות כדי להציג את הקובץ המצורף.
CannotRemoveCourseFolderOwner
CannotRemoveCourseFolderOwner
מציין שלא ניתן להסיר את הבעלים של התיקייה ב-Drive של הקורס.
פעולה אפשרית: צריך לתאר את הגורם לכשל ולהציע למשתמש להעביר את הבעלות על התיקייה של הקורס ב-Drive למשתמש אחר, ולנסות שוב.
CannotRemoveCourseOwner
CannotRemoveCourseOwner
מציין שלא ניתן להסיר את הבעלים של הקורס.
פעולה אפשרית: תיאור הגורם לכישלון והצעה שלא ניתן להסיר את בעלי הקורס. ברוב המקרים, המשתמש מנסה להסיר את עצמו, וזו פעולה אסורה.
CannotRemoveCourseOwnerTransferIncomplete
לפי CannotRemoveCourseOwnerTransferIncomplete
, לא ניתן להסיר את הבעלים של הקורס כי עדיין מתבצעת העברת הבעלות על הכיתה.
פעולה אפשרית: תיאור הסיבה לכשל והצעה שהמשתמש ימתין מספר רגעים עד להשלמת הפעולה האסינכרונית של העברת הבעלות על הכיתה, ולאחר מכן נסה שוב.
CannotRemoveTeacherWithNoCourseOwner
לפי CannotRemoveTeacherWithNoCourseOwner
, לא ניתן להסיר מורה מקורס ללא בעלים.
פעולה אפשרית: תיאור הסיבה לכשל והצעה שלא נסיר את המורה. ברוב המקרים, חשבון המשתמש של בעלי הקורס נמחק, מה שגרם למצב של קורס לא חוקי.
InactiveCourseOwner
InactiveCourseOwner
מציין שהפעולה המבוקשת אסורה כי החשבון של בעלי הקורס נמחק. האדמין של בעלי הקורס צריך לשחזר את החשבון של בעלי הקורס לפני ביצוע הפעולה המבוקשת.
פעולה אפשרית: תיאור הגורם לכישלון והצעה לאדמין לשחזר את החשבון של בעלי הקורס לפני שינסה שוב לבצע את הפעולה.
IneligibleOwner
לפי IneligibleOwner
, לא ניתן להוסיף את המשתמש כבעלים של הקורס כי הוא לא מורה עמית.
פעולה אפשרית: תיאור הסיבה לכשל. אם המשתמש ששלח את הבקשה הוא לא אדמין, אפשר להציע לו קודם לשלוח למשתמש הזמנה להיות מורה בקורס, לפני עדכון הבעלים. אם המשתמש ששלח את הבקשה הוא אדמין, יש להציע לו להוסיף קודם את המשתמש כמורה שותף בקורס.
UserCannotOwnCourse
UserCannotOwnCourse
מציין שלא ניתן להוסיף את המשתמש כבעלים של הקורס.
פעולה אפשרית: תיאור הסיבה לכשל והצעה שלא ניתן יהיה ליצור את הקורס כשהמשתמשים שלו מוגדרים כבעלים של הקורס. השגיאה הזו עשויה להופיע אם משתמש שאינו אדמין שמבקש ליצור קורס, הוא לא הבעלים של הקורס. מנהל מערכת שמבקש משתמש עשוי לראות את השגיאה הזו אם חשבון המשתמש שצוין כבעלים אינו קיים, או אם המשתמש אינו נמצא בדומיין שלו.
HTTP 429: RESOURCE_EXHAUSTED
הערך RESOURCE_EXHAUSTED
מוחזר כשהפעולה המבוקשת אסורה כי חלק מהמשאב, כמו המכסה או קיבולת השרת, מוצה. שגיאות מהסוגים האלה בבקשה מתרחשות בדרך כלל כי האפליקציה ייצרה עומס יתר.
כדי להימנע מהפעלת המגבלות האלה ולהגביר את האמינות של האפליקציה, צריך להשתמש במנגנונים של ניסיונות חוזרים. מנגנונים חוקיים של ניסיונות חוזרים כוללים:
יש להשתמש בהשהייה מעריכית קטועה כדי לנסות שוב את הבקשה ולמקסם את תפוקת הבקשות בסביבות בו-זמניות.
כדי למנוע התנגשויות, כדאי לשקול השהיה מעריכית קטועה באמצעות רעידות. התכונה 'רעידות' יכולה לעזור לבקשות שלכם להצליח מהר יותר, באמצעות עיכוב אקראי שמפזר עליות חדות בבקשות.
אם האפליקציה מחזירה RESOURCE_EXHAUSTED
שגיאות עקב מגבלות מכסה, יש להגיש בקשה להגדלת המכסה. מידע נוסף זמין במאמר בנושא מעקב אחרי מכסות API במרכז העזרה.
UserCourseJoinRateLimitReached
UserCourseJoinRateLimitReached
מציין שהמשתמש כבר הצטרף למספר המקסימלי המותר של קורסים ביום אחד. מידע נוסף זמין בקטע 'הזמנות וגודל של קבוצות' במאמר הסבר על המדיניות והמגבלות של קבוצות Google במרכז העזרה.
פעולה אפשרית: תיאור הסיבה לכשל והצעה שהמשתמש ימתין יום אחד לפני ההצטרפות לקורס.
HTTP 500: INTERNAL
INTERNAL
מציין שאירעה שגיאה לא צפויה במהלך עיבוד הבקשה. לעיתים קרובות ניתן לפתור שגיאות בבקשות INTERNAL
באמצעות השהיה מעריכית לפני ניסיון חוזר לבקשה. אם השגיאה מסוג INTERNAL
נמשכת, ניתן לדווח עליה על-ידי דיווח על באג בכלי הציבורי למעקב אחר בעיות של Classroom API.