Request Errors

ข้อผิดพลาดของคำขอ

ข้อผิดพลาดของ 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() เพื่อจัดการบัญชีรายชื่อครูในนามของผู้ใช้ได้ (หากแอปของคุณมี)

CourseTopicLimitReached

CourseTopicLimitReached บ่งบอกว่าการดำเนินการที่ขอจะมีหัวข้อเกินจำนวนสูงสุดที่อนุญาตในหลักสูตร โดยปกติแล้ว รหัสนี้จะแสดงโดยเมธอด courses.topics.create()

การดำเนินการที่ทำได้: อธิบายสาเหตุของการไม่ผ่านและแนะนำให้ผู้ใช้นำหัวข้อที่ไม่จำเป็นออก คุณสามารถใช้เมธอด courses.topics.delete() เพื่อจัดการหัวข้อในนามของผู้ใช้ได้ (หากแอปของคุณมี)

UserGroupsMembershipLimitReached

UserGroupsMembershipLimitReached บ่งบอกว่าผู้ใช้เป็นสมาชิกของกลุ่มครบตามจำนวนสูงสุดที่อนุญาตแล้ว และไม่สามารถเข้าร่วมหลักสูตรใดๆ ได้ โดยปกติแล้ว students.create() หรือ teachers.create() จะแสดงผลรหัสนี้ ดูข้อมูลเพิ่มเติมได้ที่ส่วน "ข้อจำกัดด้านจำนวนนักเรียนในชั้นเรียน" ในบทความเชิญนักเรียนเข้าร่วมชั้นเรียนในศูนย์ช่วยเหลือ

การดำเนินการที่ทำได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำให้ผู้ใช้ออกจากหลักสูตรที่ไม่ได้เข้าร่วม ผู้ใช้อาจต้องสร้างบัญชีเพิ่มหากต้องการเข้าร่วมหลักสูตรเพิ่มเติม คุณสามารถใช้ students.create() หรือ teachers.delete() เพื่อจัดการรายชื่อผู้เล่นในนามของผู้ใช้ได้ (หากแอปของคุณมี)

AttachmentNotVisible

AttachmentNotVisible บ่งบอกว่าไฟล์แนบอย่างน้อย 1 รายการที่ระบุนั้นผู้ใช้มองไม่เห็น ไม่ได้อยู่ในประเภทที่ขอ หรือไม่มีอยู่ เช่น รายการในไดรฟ์ที่ยังไม่ได้แชร์กับผู้ใช้จะแสดงข้อผิดพลาดนี้

การดำเนินการที่ทำได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำให้ผู้ใช้ตรวจสอบตัวระบุที่ระบุ เช่น รหัสไฟล์ในไดรฟ์อีกครั้ง และตรวจสอบว่าผู้ใช้มีสิทธิ์ที่เหมาะสมในการดูไฟล์แนบ

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner ระบุว่านำเจ้าของโฟลเดอร์ไดรฟ์ของหลักสูตรออกไม่ได้

การดำเนินการที่ทำได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำให้ผู้ใช้โอนการเป็นเจ้าของโฟลเดอร์ไดรฟ์ของหลักสูตรไปยังผู้ใช้รายอื่นแล้วลองอีกครั้ง

CannotRemoveCourseOwner

CannotRemoveCourseOwner บ่งบอกว่านำเจ้าของหลักสูตรออกไม่ได้

การดำเนินการที่เป็นไปได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำว่าอาจไม่นำเจ้าของหลักสูตรออก ในกรณีส่วนใหญ่ ผู้ใช้พยายามนำตัวเองออก ซึ่งไม่อนุญาต

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete บ่งบอกว่าไม่สามารถนำเจ้าของหลักสูตรออกได้เนื่องจากยังอยู่ระหว่างการโอนการเป็นเจ้าของชั้นเรียนนี้

การดำเนินการที่ทำได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำให้ผู้ใช้รอสักครู่เพื่อให้การดำเนินการแบบไม่พร้อมกันในการโอนความเป็นเจ้าของชั้นเรียนเสร็จสมบูรณ์ แล้วลองอีกครั้ง

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner บ่งบอกว่าครูไม่สามารถถูกนำออกจากหลักสูตรที่ไม่มีเจ้าของ

การดำเนินการที่เป็นไปได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำว่าอาจไม่นำครูออก ในกรณีส่วนใหญ่ บัญชีผู้ใช้ของเจ้าของหลักสูตรถูกลบออก ทำให้สถานะหลักสูตรไม่ถูกต้อง

InactiveCourseOwner

InactiveCourseOwner บ่งบอกว่าการดำเนินการที่ขอไม่ได้รับอนุญาตเนื่องจากบัญชีของเจ้าของหลักสูตรถูกลบไปแล้ว ผู้ดูแลระบบของเจ้าของหลักสูตรต้องกู้คืนบัญชีของเจ้าของหลักสูตรก่อนดำเนินการตามคำขอ

การดำเนินการที่ทำได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำให้ผู้ดูแลระบบกู้คืนบัญชีของเจ้าของหลักสูตรก่อนดำเนินการอีกครั้ง

IneligibleOwner

IneligibleOwner บ่งบอกว่าเพิ่มผู้ใช้เป็นเจ้าของหลักสูตรไม่ได้เนื่องจากผู้ใช้ไม่ใช่ผู้สอนร่วม

การดำเนินการที่เป็นไปได้: อธิบายสาเหตุของการไม่สำเร็จ หากผู้ใช้ที่ส่งคำขอไม่ใช่ผู้ดูแลระบบ แนะนำให้ผู้ใช้ส่งคำเชิญให้ผู้ใช้รายนั้นเป็นผู้สอนในหลักสูตรก่อนอัปเดตเจ้าของ หากผู้ใช้ที่ส่งคำขอเป็นผู้ดูแลระบบ โปรดแนะนำให้ผู้ใช้เพิ่มบุคคลนั้นเป็นผู้สอนร่วมของหลักสูตรก่อน

UserCannotOwnCourse

UserCannotOwnCourse ระบุว่าเพิ่มผู้ใช้เป็นเจ้าของหลักสูตรไม่ได้

การดำเนินการที่ทำได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำว่าสร้างหลักสูตรโดยให้ผู้ใช้เป็นเจ้าของไม่ได้ ผู้ใช้ที่ส่งคำขอซึ่งไม่ใช่ผู้ดูแลระบบอาจเห็นข้อผิดพลาดนี้หากพยายามสร้างหลักสูตรโดยให้ผู้ใช้อื่นเป็นเจ้าของ ผู้ดูแลระบบที่ส่งคำขอผู้ใช้อาจเห็นข้อผิดพลาดนี้หากบัญชีผู้ใช้ที่ระบุเป็นเจ้าของนั้นไม่อยู่ หรือผู้ใช้ไม่ได้อยู่ในโดเมนของผู้ดูแลระบบ

HTTP 429: RESOURCE_EXHAUSTED

ระบบจะแสดงผล RESOURCE_EXHAUSTED เมื่อไม่อนุญาตให้ดำเนินการตามคำขอเนื่องจากทรัพยากรบางอย่าง เช่น โควต้าหรือขีดจำกัดของเซิร์ฟเวอร์ หมดแล้ว ข้อผิดพลาดเกี่ยวกับคําขอประเภทนี้มักเกิดขึ้นเนื่องจากแอปของคุณสร้างภาระงานมากเกินไป

ใช้กลไกการลองอีกครั้งเพื่อหลีกเลี่ยงการเรียกใช้ขีดจํากัดเหล่านี้และเพิ่มความน่าเชื่อถือของแอปพลิเคชัน กลไกการลองอีกครั้งที่ถูกต้อง ได้แก่

  • ใช้ Exponential Backoff แบบตัดทอนเพื่อส่งคำขออีกครั้งและเพิ่มปริมาณงานสูงสุดของคำขอในสภาพแวดล้อมแบบพร้อมกัน

  • หากต้องการหลีกเลี่ยงการชนกัน ให้พิจารณาใช้ Exponential Backoff แบบตัดทอนที่มี Jitter การใช้ Jitter จะช่วยให้คำขอของคุณสำเร็จได้เร็วขึ้นด้วยการเพิ่มการหน่วงเวลาแบบสุ่มเพื่อกระจายจำนวนคำขอที่เพิ่มขึ้น

หากแอปพลิเคชันแสดงข้อผิดพลาด RESOURCE_EXHAUSTED เนื่องจากข้อจำกัดของโควต้า ให้ส่งคำขอเพิ่มโควต้า ดูข้อมูลเพิ่มเติมได้ที่บทความโควต้าของ Monitor API ในศูนย์ช่วยเหลือ

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached บ่งบอกว่าผู้ใช้เข้าร่วมหลักสูตรครบจำนวนสูงสุดที่อนุญาตแล้วในวันเดียว ดูข้อมูลเพิ่มเติมได้ที่ส่วน "คำเชิญและขนาดของกลุ่ม" ในบทความทำความเข้าใจนโยบายและขีดจำกัดของ Groups ในศูนย์ช่วยเหลือ

การดำเนินการที่เป็นไปได้: อธิบายสาเหตุของการไม่สำเร็จและแนะนำให้ผู้ใช้รอ 1 วันก่อนเข้าร่วมหลักสูตร

HTTP 500: INTERNAL

INTERNAL บ่งบอกว่าเกิดข้อผิดพลาดที่ไม่คาดคิดขณะประมวลผลคำขอ ข้อผิดพลาดเกี่ยวกับคำขอ INTERNAL มักแก้ไขได้โดยใช้ Exponential Backoff เพื่อส่งคำขออีกครั้ง หากข้อผิดพลาด INTERNAL ยังคงอยู่ คุณสามารถรายงานได้โดยแจ้งข้อบกพร่องในเครื่องมือติดตามปัญหาสาธารณะของ Classroom API