Request Errors

要求錯誤

Classroom API 錯誤可包含錯誤代碼,以便找出原因並妥善處理錯誤。視程式碼而定,您可以重試要求,或引導使用者採取特定動作。

這個頁面會詳細列出可能的錯誤代碼,按 HTTP 代碼分組。如要進一步瞭解錯誤訊息的結構,請參閱錯誤訊息結構

這個頁面會詳細列出可能的錯誤代碼,按 HTTP 代碼分組。請參閱參考說明文件,判斷哪些方法會傳回特定錯誤代碼。

HTTP 400:FAILED_PRECONDITION

當使用者嘗試執行不允許的動作時,無論使用者達到限製或應用程式狀態 (例如 CourseNotModifiable),系統會傳回 FAILED_PRECONDITION。如要修正 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 表示使用者無法檢視指定的一或多個附件,或是所要求的類型不存在,或者不存在。舉例來說,尚未與使用者共用的雲端硬碟項目就會傳回這個錯誤。

可能採取的行動:說明失敗的原因,並建議使用者重新檢查內含的 ID (例如雲端硬碟檔案 ID)。此外,請確認使用者擁有查看附件的適當權限。

CannotRemoveCourseFolderOwner

CannotRemoveCourseFolderOwner 表示課程的雲端硬碟資料夾擁有者無法移除。

可能採取的行動:說明失敗原因,並建議使用者將課程雲端硬碟資料夾擁有權轉移給其他使用者,然後再試一次。

CannotRemoveCourseOwner

CannotRemoveCourseOwner 表示課程擁有者可能無法移除。

可能採取的行動:說明失敗原因,並指出課程擁有者無法移除。使用者嘗試將自己移除,這是違反規定的行為。

CannotRemoveCourseOwnerTransferIncomplete

CannotRemoveCourseOwnerTransferIncomplete 表示課程擁有者無法移除,因為課程擁有權轉移仍在進行中。

可能採取的行動:說明失敗的原因,並建議使用者稍待片刻,將類別擁有權轉移完成,然後再試一次。

CannotRemoveTeacherWithNoCourseOwner

CannotRemoveTeacherWithNoCourseOwner 表示可能無法從沒有擁有者的課程中移除老師。

可能採取的行動:說明失敗的原因,並暗示老師可能不會被移除。在大多數情況下,課程擁有者的使用者帳戶遭到刪除,導致課程狀態無效。

InactiveCourseOwner

InactiveCourseOwner 表示課程擁有者的帳戶已遭刪除,因此不允許執行要求的動作。課程擁有者的管理員必須先還原課程擁有者的帳戶,才能依照要求採取行動。

可能採取的行動:說明失敗的原因,並建議管理員在再次嘗試操作前,還原課程擁有者的帳戶

IneligibleOwner

IneligibleOwner 表示該使用者不是共同授課老師,因此無法新增為課程擁有者。

可能的動作:說明失敗的原因。如果提出要求的使用者並非管理員,建議他們先向對方傳送邀請成為課程老師,再更新擁有者。如果提出要求的使用者是管理員,建議先將使用者新增為課程共同授課老師。

UserCannotOwnCourse

UserCannotOwnCourse 表示無法將使用者新增為課程擁有者。

可能採取的行動:說明失敗的原因,並指出您無法以課程擁有者的身分建立課程。如果要求使用者的非管理員嘗試以擁有者以外的使用者身分建立課程,就會看到這則錯誤訊息。如果管理員指定的使用者帳戶不存在,或使用者不在其網域中,要求使用者的管理員就可能看到這則錯誤訊息。

HTTP 429:RESOURCE_EXHAUSTED

如果部分資源 (例如配額或伺服器容量) 已用盡,且不允許執行要求的動作,系統會傳回 RESOURCE_EXHAUSTED。這類要求錯誤通常是因為應用程式產生過多負載。

為避免觸發這些限制並提高應用程式可靠性,請使用重試機制。有效的重試機制包括:

  • 使用部分指數輪詢重試要求,盡可能提高並行環境中的要求處理量。

  • 為避免發生衝突,請考慮使用時基誤差截斷的指數輪詢。導入時基誤差可以提高要求次數的隨機延遲,讓要求更快成功。

如果您的應用程式因配額限製而傳回 RESOURCE_EXHAUSTED 錯誤,請提交提高配額。詳情請參閱「監控 API 配額」說明中心文章。

UserCourseJoinRateLimitReached

UserCourseJoinRateLimitReached 表示使用者在一天內加入的課程數量上限。詳情請參閱說明中心文章「瞭解網路論壇政策與限制」一文的「群組邀請和大小」一節。

可能採取的行動:說明失敗的原因,並建議使用者等待一天,才能加入課程。

HTTP 500:INTERNAL

INTERNAL 表示處理要求時發生未預期的錯誤。使用指數輪詢重試要求通常也能解決 INTERNAL 要求錯誤。如果 INTERNAL 錯誤持續發生,您可以透過 Classroom API 公開 Issue Tracker 回報錯誤。