ข้อความแสดงข้อผิดพลาดที่พบบ่อยของ Google Classroom API

หน้านี้อธิบายข้อความแสดงข้อผิดพลาด ปัญหา และ การดำเนินการที่เป็นไปได้บางอย่างของ Google Classroom API สำหรับข้อผิดพลาดประเภทต่อไปนี้

HTTP 400: FAILED_PRECONDITION

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

AttachmentNotVisible

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

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

CannotRemoveCourseFolderOwner

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

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

CannotRemoveCourseOwner

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

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

CannotRemoveCourseOwnerTransferIncomplete

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

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

CannotRemoveTeacherWithNoCourseOwner

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

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

CourseMemberLimitReached

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

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

CourseNotModifiable

CourseNotModifiable บ่งชี้ว่าหลักสูตรที่เกี่ยวข้องอยู่ในสถานะที่ ไม่อนุญาตให้แก้ไขพร็อพเพอร์ตี้ของหลักสูตร (นอกเหนือจากสถานะของหลักสูตร เอง)

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

CourseTeacherLimitReached

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

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

CourseTitleCannotContainUrl

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

การดำเนินการที่เป็นไปได้ อธิบายสาเหตุที่ทำให้เกิดข้อผิดพลาดและแนะนำให้ผู้ใช้นำรูปแบบ URL ออกจากช่อง title อนุญาตให้ใช้ URL ได้ในฟิลด์ description

CourseTopicLimitReached

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

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

InactiveCourseOwner

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

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

IneligibleOwner

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

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

PendingInvitationExists

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 เนื่องจากผู้ใช้อาจใช้บัญชีที่ไม่ถูกต้อง

ClassroomDisabled

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

HTTP 429: RESOURCE_EXHAUSTED

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

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

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

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

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

UserCourseJoinRateLimitReached

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

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

HTTP 500: INTERNAL

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