与附件互动

本页面讨论了用于创建附件和处理学生提交的作业的实现详情。请注意,在发出这些请求时,您可能需要提供与附件相关的参数

创建连接

通过向相应的 courses.*.addOnAttachments.create 端点发出 CREATE 请求来创建连接。您的请求必须在请求正文中包含 AddOnAttachment 的实例。

创建连接时,以下字段是必填字段:

  • title:附件的字符串名称。
  • teacherViewUri:附件的教师视图 URI。
  • studentViewUri:附件的学生视图的 URI。
  • studentWorkReviewUri:供教师查看学生在附件中的作业的 URI。只有活动类型的附件才需要此字段。

您可能需要添加以下一些选填字段:

  • dueDatedueTime(如果指定附件的截止日期)。
  • maxPoints:附件的最高成绩。如果您想支持成绩回传,则必须为非零值。仅适用于 activity 类型的附件。

如需详细了解这些字段,请参阅 AddOnAttachment 资源参考文档。

学生提交内容的详细信息

典型的提交工作流遵循以下步骤:

  1. 学生启动studentViewUri来完成一项活动。
  2. 该插件使用学生凭据从 getAddOnContext 方法中检索 submissionId
  3. 插件开发者会将 submissionIdattachmentId 存储为学生作业的唯一标识符。如果教师在 Google 课堂中复制了作业,您可以使用这两个参数的复合键,在复制的作业中显示新附件。如需了解详情,请参阅有关复制内容的页面。
  4. 有意查看学生作业的教师启动了 studentWorkReviewUri。该请求包含以下查询参数:courseIditemIditemTypeattachmentIdsubmissionId
  5. 插件开发者会使用这四个 ID 来检索学生的作业。使用 courses.courseWork.addOnAttachments.studentSubmissions 端点可检索或修改有关学生提交内容的信息。

检测提交状态

courses.courseWork.addOnAttachments.studentSubmissions 端点发出 GET 请求可获取有关特定 submissionId 的详细信息。您会收到一个 AddOnAttachmentStudentSubmission 对象,其中包含提交内容的成绩 (pointsEarned) 和当前状态 (postSubmissionState)。提交状态可以是以下值之一:

  • NEW(如果学生从未访问过作业)。
  • 如果学生已经提交了作业,但尚未提交,则为 CREATED
  • TURNED_IN(如果学生已向教师提交作业)。
  • RETURNED(如果教师已将提交内容发回给学生)。
  • RECLAIMED_BY_STUDENT(如果学生已“取消提交”作业)。

使用此端点可检测您的插件中学生作业的状态。然后,您可以根据返回的状态调整为学生提供的视图或选项。这可能包括如下功能:

  • 在插件中显示作业的上交状态。这可以帮助学生避免潜在的混淆,并确保他们不会误交作业。
  • 限制提交内容修改权限。如果作业的状态为 CREATEDRECLAIMED_BY_STUDENT,则学生可以修改其提交内容。如果作业的状态为 TURNED_INRETURNED,则学生可能无法修改其提交内容。

成绩和多个附件

只能使用一个插件附件为单项作业设置成绩。如果教师创建了多个提供 maxPoints 值的活动类型附件,则只有第一个此类附件才能设置作业成绩。请勿设置 maxPoints 值或将其设为 0,以停用附件的成绩回传功能。

设置提交内容的成绩

您可以通过向 courses.courseWork.addOnAttachments.studentSubmissions 端点发送 PATCH 请求来修改学生提交的作业。请求正文必须包含带有修改后的值的 AddOnAttachmentStudentSubmission 实例。设置 pointsEarned 字段即可修改提交内容的成绩。 在 pointsEarned 中传递的值将成为教师可在 Google 课堂界面中查看的初始成绩。教师可以在将作业发回给学生之前修改初始成绩。如需详细了解如何向教师显示成绩,请参阅课堂界面中的评分概览

请注意,只有满足以下条件时,才能使用 pointsEarned 设置成绩:

  • 附件必须为 maxPoints 正值。
  • 插件必须是附件的原创建者。

另请注意,您还可以通过向 addOnAttachments 端点发出 PATCH 请求来修改已创建的 AddOnAttachmentmaxPoints 值。

何时设置成绩

您可以选择何时将成绩发回 Google 课堂。关键区别在于您是否选择存储教师的凭据,因为只有教师可以修改成绩。

在两种情况下,您可以向 Google 课堂评分将成绩通过插件时刻:学生完成作业时,或老师在“学生的作业评价” iframe 中打开学生的作业时。

如果您希望在学生完成作业时设置成绩,则必须存储教师的离线凭据,然后在学生完成作业后检索并使用这些凭据来修改成绩。此方法带来一些潜在优势:

  • 提供无缝的成绩更新。教师无需执行任何特殊操作即可让成绩显示在 Google 课堂界面中。
  • 通过作业,实时了解课程进展。 通过将成绩设置为学生填写附件,教师无需打开每份作业就能了解学生的理解程度。

请注意,此方法还支持采用异步方法对同步内容进行评分。您可以定期轮询 AddOnAttachmentStudentSubmission 端点,以检测学生何时提交了作业。提交作业后,使用存储的凭据设置提交作业的成绩。

如果您不想在学生会话期间加载教师的凭据,则可以在学生作业评价 iframe 中加载学生的作业时使用当前教师的凭据。但是,这可能无法提供特别流畅的用户体验,因为 Google 课堂界面中的成绩不会实时更新,并且教师必须打开每项提交的作业的“学生作业评价”iframe。

检测作业成绩的变化

创建作业后 教师可以在“课堂”中修改成绩设置此类修改可能包括:

  • 更改分配的分数。
  • 更改作业的 maxPoints 值。
  • 更改是否应为作业评分。

如需查看作业的当前评分设置,我们建议您向 courses.courseWork 端点发送 GET 请求。响应包含当前的 maxPoints 值。不计分的作业具有 null 或零 maxPoints 值。

如果您已将成绩传回 Google 课堂,请使用 courses.courseWork.addOnAttachments.studentSubmissions 端点获取或更改插件附件的成绩。成绩值是使用 pointsEarned 字段设置的。如果您的产品允许教师修改学生在特定活动的分数,请考虑检查此值,并在必要时更新此值。