หน้านี้อธิบายข้อความแสดงข้อผิดพลาด ปัญหา และการดำเนินการที่เป็นไปได้สำหรับข้อผิดพลาดประเภทต่อไปนี้ของ Google Classroom API
- HTTP 400:
FAILED_PRECONDITION
- HTTP 403:
PERMISSION_DENIED
- HTTP 429:
RESOURCE_EXHAUSTED
- HTTP 500:
INTERNAL
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() เพื่อจัดการบัญชีรายชื่อครูในนามของผู้ใช้
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 ของรหัสไคลเอ็นต์ OAuth ที่สร้างทรัพยากรเท่านั้นที่จะสร้างการเรียกคืนได้
UserIneligibleToUpdateGradingPeriodSettings
UserIneligibleToUpdateGradingPeriodSettings
บ่งบอกว่าคำขอพยายามแก้ไขการตั้งค่าระยะเวลาการให้คะแนนในหลักสูตรที่ผู้ใช้ที่ส่งคำขอหรือเจ้าของหลักสูตรไม่มีใบอนุญาต Google Workspace for Education ที่เหมาะสม
การดำเนินการที่ทำได้: ระบุว่าแอปพลิเคชันของคุณไม่สามารถส่งคำขอที่ต้องการเพื่ออัปเดตการตั้งค่าระยะเวลาการให้คะแนนเนื่องจากสถานะการออกใบอนุญาตของผู้ใช้ที่ส่งคำขอหรือเจ้าของหลักสูตร คุณสามารถมอบหมายใบอนุญาตได้ในคอนโซลผู้ดูแลระบบของ Google
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