您的用户是通过 Google Meet 使用 Google 课堂吗?请查看 Apps 脚本快速入门 - 了解如何在 Google Meet 课程中查看学生出席情况

Request Errors

请求错误

Google 课堂 API 错误可能包含错误代码,以帮助您确定原因并正确处理错误。根据代码的不同,您可以重试请求或引导用户执行某些操作。

本页详细介绍了可能的错误代码(按 HTTP 代码分组)。如需详细了解错误消息的结构,请参阅错误消息结构

本页详细介绍了可能的错误代码(按 HTTP 代码分组)。请参阅参考文档,确定哪些方法会返回任何特定的错误代码。

HTTP 400:FAILED_PRECONDITION

如果用户尝试执行因已达到上限或应用状态(例如 CourseNotModifiable)而无法执行的操作,系统会返回 FAILED_PRECONDITION。如需修复 FAILED_PRECONDITION,请指示用户执行操作,然后重试。或者,在某些情况下,您可以使用备用端点代表用户修复状态。

已达到课程成员数量上限

CourseMemberLimitReached,表示尝试执行的操作会超出允许的最大课程成员数量。此代码通常由 students.create() 返回。有关详情,请参阅帮助中心文章邀请学生加入课程的“课程大小限制”部分。

可能的操作:描述失败原因,并建议用户移除不必要的课程成员

课程无法修改

CourseNotModifiable 表示相关课程所处的状态不允许修改其属性(课程状态本身除外)。

可以执行的操作:提示用户将课程更改为可修改的课程状态。如需更改状态,请使用 courses.patch()。您可以在更改其他属性的请求中更改课程状态。

已达到课程教师数量上限

CourseTeacherLimitReached 表示请求的操作将超出课程教师允许的最大数量。此代码通常由 teachers.create() 返回。有关详情,请参阅帮助中心文章在课程中添加助理教师的“课程大小限制”部分。

可能的操作:说明失败原因,并建议用户移除不必要的课程教师。如果适用于您的应用,您可以使用 teachers.delete() 代表用户管理教师名单。

已覆盖用户群组成员资格限制

UserGroupsMembershipLimitReached表示该用户已经是所加入群组数量上限的成员,无法加入任何课程。此代码通常由 students.create()teachers.create() 返回。有关详情,请参阅帮助中心文章邀请学生加入课程的“课程规模限制”部分。

可能的操作:描述失败的原因,并建议用户退出未参与的任何课程。如果用户需要参加更多课程,可以考虑另外创建一个帐号。如果适用,您可以使用 students.create()teachers.delete() 代表用户管理学生名单。

附件不可见

AttachmentNotVisible 表示指定的一个或多个附件要么对用户不可见,要么不是所请求的类型,或者不存在。例如,尚未共享给用户的云端硬盘内容会返回此错误。

可能的操作:描述失败原因,并建议用户重新检查标识符(如云端硬盘文件 ID)。此外,请确保用户拥有查看附件的适当权限。

无法移除课程文件夹所有者

CannotRemoveCourseFolderOwner 表示课程云端硬盘文件夹的所有者可能不会被移除。

可能的操作:描述失败原因,并建议用户将课程云端硬盘文件夹的所有权转移给其他用户,然后重试。

无法移除课程所有者

CannotRemoveCourseOwner 表示课程所有者不能被移除。

可能的操作:描述失败原因,并建议不移除课程所有者。在大多数情况下,用户试图移除自己不允许的行为。

无法移除课程所有者转移操作完成

CannotRemoveCourseOwnerTransferIncomplete 表示课程所有者可能仍在转移中,因为课程的所有权仍在转移中。

可能的操作:描述失败的原因,并建议用户稍等片刻,待其转移类所有权的异步操作完成后,再重试。

无法移除教师与课程所有者

CannotRemoveTeacherWithNoCourseOwner表示教师不能从没有所有者的课程中移除。

可能的操作:说明失败的原因,并建议不移除教师。在大多数情况下,课程所有者的用户帐号已被删除,导致课程状态无效。

闲置课程所有者

InactiveCourseOwner 表示不允许执行请求的操作,因为课程所有者的帐号已被删除。在执行请求的操作之前,课程所有者的管理员需要恢复课程所有者的帐号。

可能的操作:描述失败原因,并建议管理员恢复课程所有者的帐号,然后再重试操作。

不符合条件的所有者

IneligibleOwner 表示无法将用户添加为课程所有者,因为该用户不是助理教师。

可能的操作:描述失败的原因。如果发出请求的用户不是管理员,则建议他们先向用户发送邀请,邀请他们成为课程的教师,然后再更新所有者。如果发出请求的用户是管理员,建议他们首先将用户添加为课程的助理教师。

UserCannotOWNERCourse

UserCannotOwnCourse 表示无法将用户添加为课程所有者。

可能的操作:描述失败的原因,建议不要以课程所有者的身份创建课程。非管理员用户尝试创建课程时,如果不是该用户,而是所有者,则可能会看到此错误消息。如果指定为所有者的用户帐号不存在或用户不在网域内,请求用户的管理员可能会看到此错误。

HTTP 429:RESOURCE_EXHAUSTED

当请求的操作因某些资源(如配额或服务器容量)已用尽时,系统会返回 RESOURCE_EXHAUSTED。这类请求错误通常是由于您的应用产生的负载过大。

为避免触发这些限制并提高应用的可靠性,请使用重试机制。有效的重试机制包括:

  • 使用截断指数退避算法重试请求,并最大程度地提高并发环境中的请求吞吐量。

  • 为避免冲突,请考虑使用带抖动的截断指数退避算法。引入抖动可通过引入随机请求中的延迟来分散请求峰值,从而帮助您的请求取得成功。

如果您的应用因配额限制而返回 RESOURCE_EXHAUSTED 错误,请提交增加配额的请求。如需了解详情,请参阅监控 API 配额帮助中心文章。

用户课程加入率达到上限

UserCourseJoinRateLimitReached 表示用户一天内的课程数量已达到允许的上限。有关详情,请参阅帮助中心文章了解群组政策和限制中的“群组邀请和规模”部分。

可能的操作:描述失败的原因,建议用户等一天后再加入课程。

HTTP 500:INTERNAL

INTERNAL 表示处理请求时发生意外错误。通常,使用指数退避算法重试请求也可以解决 INTERNAL 请求错误。如果 INTERNAL 错误仍然存在,请在 Classroom API 公开问题跟踪器上提交 bug 来报告该错误。