หน้านี้อธิบายข้อความแสดงข้อผิดพลาด ปัญหา และ การดำเนินการที่เป็นไปได้บางอย่างของ 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()
เพื่อจัดการบัญชีรายชื่อครูในนามของผู้ใช้ได้
CourseTitleCannotContainUrl
CourseTitleCannotContainUrl
บ่งชี้ว่าระบบไม่อนุญาตให้ดำเนินการตามที่ขอเนื่องจากจะทำให้ URL ปรากฏในชื่อหลักสูตร ระบบไม่รองรับรูปแบบ URL
ในชื่อหลักสูตร
การดำเนินการที่เป็นไปได้
อธิบายสาเหตุที่ทำให้เกิดข้อผิดพลาดและแนะนำให้ผู้ใช้นำรูปแบบ URL
ออกจากช่อง title
อนุญาตให้ใช้ URL ได้ในฟิลด์ description
CourseTopicLimitReached
CourseTopicLimitReached
แสดงว่าการดำเนินการที่ขอจะเกิน
จำนวนหัวข้อสูงสุดที่อนุญาตในหลักสูตร โดยปกติแล้วเมธอด courses.topics.create()
จะแสดงรหัสนี้
การดำเนินการที่เป็นไปได้
อธิบายสาเหตุที่ทำให้เกิดข้อผิดพลาดและแนะนำให้ผู้ใช้นำหัวข้อที่ไม่จำเป็นออก
หากเกี่ยวข้องกับแอปของคุณ คุณสามารถใช้วิธี
courses.topics.delete()
เพื่อจัดการหัวข้อในนามของผู้ใช้ได้
EmptyAssignees
EmptyAssignees
หมายความว่าการดำเนินการที่ขอจะนำผู้รับมอบหมายทั้งหมด
ออกจากงานในชั้นเรียนที่เกี่ยวข้อง ระบบไม่รองรับงานในชั้นเรียนที่ไม่มีผู้รับมอบหมาย
การดำเนินการที่เป็นไปได้: อธิบายสาเหตุที่ทำให้ดำเนินการไม่สำเร็จและแนะนำว่าเจ้าของหลักสูตรไม่สามารถ นำผู้ได้รับมอบหมายทั้งหมดออกได้
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
แสดงว่าเพิ่มผู้ใช้ลงในหลักสูตรโดยตรงไม่ได้
รหัสนี้จะเกิดขึ้นเมื่อผู้ดูแลระบบโดเมนพยายามเพิ่มผู้ใช้ลงในหลักสูตร และผู้ใช้รายนั้นไม่มีอีเมลหรือไม่ได้อยู่ในโดเมน
การดำเนินการที่เป็นไปได้: อธิบายสาเหตุที่ทำให้ดำเนินการไม่สำเร็จและแนะนำให้ผู้ดูแลระบบโดเมน ตรวจสอบว่ามีบัญชีผู้ใช้และอยู่ในโดเมนของผู้ดูแลหลักสูตร
CannotInviteUserInUntrustedDomain
CannotInviteUserInUntrustedDomain
แสดงว่าผู้ใช้ที่ได้รับเชิญหรือเพิ่มไม่ได้อยู่ใน Google Workspace for Education สำหรับผู้โทรที่มีใบอนุญาต Google Workspace for Education Fundamentals ระบบจะเพิ่มหรือเชิญบัญชีที่อยู่นอก Google Workspace for Education ไปยังหลักสูตรโดยตรงไม่ได้
การดำเนินการที่เป็นไปได้: อธิบายสาเหตุที่ทำให้เกิดข้อผิดพลาดและแนะนำให้ผู้โทร พิจารณาตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้
- แนะนำให้ผู้โทรแชร์ลิงก์คำเชิญให้เข้าร่วมหลักสูตรหรือรหัสของชั้นเรียนด้วยตนเอง โปรดทราบว่าผู้ดูแลระบบต้องกำหนดค่าคำเชิญนอกโดเมน ดูข้อมูลเพิ่มเติมได้ที่เชิญนักเรียนเข้าร่วมชั้นเรียน
- แนะนำให้ผู้โทรอัปเกรดเป็นใบอนุญาต Google Workspace for Education แบบชำระเงิน เนื่องจากข้อจำกัดนี้ใช้กับใบอนุญาต Fundamentals เท่านั้น
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