简介

Google 课堂中的作业称为“课业”项,可在任何给定 Google 课堂的“课业”页面中找到。虽然有四种课业内容类型,但本指南仅重点介绍“作业”类型。如需了解如何管理其他类型的课业,请参阅我们的“管理课业”指南

Google 课堂有两种与作业工作流程集成的方式:Google 课堂分享按钮Google 课堂 API。借助分享按钮,用户可以通过 Google 课堂弹出式对话框以任何信息流项的形式分享内容,而 Google 课堂 API 则支持端到端作业工作流,包括创建作业、创建和管理学生提交内容,以及成绩回传。

下面,我们将介绍这两项开发者产品之间的主要区别。具体而言,我们将探讨实现方式的差异,以及作业生命周期的每个阶段:作业创建、学生提交和评分/反馈。

了解作业生命周期

在讨论分享按钮和 CourseWork API 之间的区别之前,我们先来定义一下 Google 课堂中作业的生命周期。这有助于您了解教师和学生如何在 Google 课堂中与作业互动。

在与 Google 课堂作业集成时,请注意以下个主要步骤:

  1. 已创建作业。
  2. 作业会与学生共享。
  3. 学生完成作业。
  4. 学生向教师提交作业。
  5. 教师查看和评分作业。

通过与 Google 课堂作业集成,教师和学生可以在 Google 课堂和第三方应用之间无缝切换。用户可以依赖您的应用来管理作业或学生提交内容的详细信息,而无需自行管理。

显示作业五个步骤的示意图

实现

分享按钮与 CourseWork API 之间的第一个区别是实现。从开发者的角度来看,分享按钮是将内容分享到 Google 课堂的更简单方法,因为只需添加必要的 JavaScript 资源和分享按钮标记即可。最简单的形式是,您的 Google 课堂分享按钮集成可能如下代码段所示:

<script src="https://apis.google.com/js/platform.js" async defer></script>
<g:sharetoclassroom url="http://url-to-share" size="32"></g:sharetoclassroom>

另一方面,CourseWork API 是 Google Classroom API REST API 的一部分,需要使用 Google Cloud 控制台设置和启用 API 密钥,并遵循与 API 集成的最佳实践。如果您的平台已在利用其他 Google 课堂 API 功能(例如编制名单),则不必太担心。

创建和分享作业

虽然分享按钮和 CourseWork API 都可以实现作业工作流的两个步骤(创建作业并与学生分享),但在选择解决方案之前,您应该考虑一些关键差异。

这两种解决方案的核心功能是,您可以将链接或文件作为作业发布到 Google 课堂。这对教师来说是一项强大的工作流程,否则他们就只能在 Google 课堂和第三方应用之间进行复制和粘贴。虽然这两种解决方案都支持将内容作为作业发布,但您应考虑您的应用是否需要灵活地将此类内容发布为其他类型的作业,甚至是作为通知发布。

这两种版本都提供所有 Google 课堂帖子类型(知识问答作业除外)。下面简要介绍了所有帖子类型及其是否已公开。

帖子类型 “分享”按钮 CourseWork API
作业 X X
测验作业
题目:简答 X X
题目:单选题 X X
材质 X X
通知 X X

您还可以通过应用以编程方式为这两种解决方案指定功能(例如指定标题和说明)。虽然分享按钮集成允许用户在弹出式对话框中设置截止日期、主题、个性化模式和积分数等字段,但第三方应用无法通过编程方式设置这些字段。另一方面,API 会公开所有这些字段,以便进行读取和写入访问。

修改作业

与 Classroom API 集成的好处之一是,用户无需手动同步作业的更改详情。分享按钮缺少以编程方式更新或删除作业的功能,因此用户必须通过 Google 课堂界面进行任何必要的修改。

借助 CourseWork API,您可以修改和删除您的应用创建的作业,还可以检索发布到用户课程的任何作业的详细信息。不过,请务必注意,如果某个课程作业项目不是使用同一开发者控制台创建的,则无法通过该开发者控制台进行修改。此权限模型会延伸到作业生命周期的其余部分,例如,无法对这些课程作业内容访问管理学生提交内容和成绩的权限。

自动同步作业

借助 Pub/Sub 推送通知,您的应用可以订阅在课程作业项及其关联的学生提交内容发生更改时触发事件的通知。这样,您的应用无需不断检查 Google 课堂上的内容是否已更新,从而轻松同步作业。

完成和提交作业

每个作业都与 N 份学生提交的内容相关联,其中 N 是分配了作业的学生数量。换句话说,对于每项作业,每位学生都有一份关联的学生提交内容,可通过唯一 ID 访问。这些学生提交内容会自动创建,您的应用可以使用学生提交内容 GET 和 LIST 端点检索这些内容。

分享按钮和 CourseWork API 都支持向学生提交的作业中添加链接或文件。分享按钮通过与教师作业创建对话框类似的工作流程实现此功能,而 CourseWork API 则通过 studentSubmissions.modifyAttachments 端点实现此功能。不过,由于之前详述的 API 权限限制,此功能仅适用于您的应用创建的课程作业项。同样的限制不适用于“分享”按钮,学生可以将其作业添加到 Google 课堂中选择的任何作业中。

结束学生工作流程

虽然 Coursework 权限限制不适用于不支持作业创建的平台,但其有一个好处:第三方平台可以防止学生提交错误的作业,也可以防止学生忘记提交作业,因为只有“分享”按钮会限制学生提交作业。

查看和评分作业

作业生命周期的最后一部分会返回给教师。学生成功上交作业后,教师现在可以按照最合适的方式查看作业。如果文件存储在云端硬盘中,教师可以直接在 Google 课堂评分器中进行评阅。不过,您无法在 Google 课堂评分器中访问第三方应用。这意味着,教师在查看和评分作业时必须浏览多个标签页。

分享按钮目前不提供用于评分和返回作业的解决方案。虽然目前无法通过 API 使用学生提交内容评论等功能,但您可以通过 studentSubmissions.patchstudentSubmissions.return 端点对作业进行评分并将成绩发回给学生。只能为课程作业信息流中的项(作业和题目类型)指定成绩。它们只能以数字形式提供,可以作为草稿成绩或最终成绩分配。

差异摘要

为总结前面部分中介绍的所有内容,下表对上面讨论的四个类别(实现、创建和分享作业、完成和提交作业以及审核和评分作业)的分享按钮和 CourseWork API 进行了并排比较。

“分享”按钮 CourseWork API
实现 只需几行 JavaScript 代码,实现起来简单又快速 需要设置 API 密钥、在管理控制台中启用 API 并加强监控
创建和共享作业
  • 将教师重定向到“课堂”分享按钮共享对话框
  • 用户可以发布除一种直播内容类型以外的所有类型
  • 可以指定的字段更少
  • 一个角色可创建作业,但无法提取或修改作业数据
  • 无需的分享按钮对话框
  • 可以指定大多数 Google 课堂作业字段
  • 能够修改您的应用创建的课程
  • 允许您的应用从 Google 课堂中提取所有作业数据
完成和提交作业
  • 将学生重定向到“课堂”分享按钮共享对话框
  • 允许学生将其提交内容附加到任何 Google 课堂作业中
  • 一种是启用提交附件,但无法拉取或修改提交数据
  • 不允许学生提交作业
  • 无需的分享按钮对话框
  • 仅允许学生将其提交内容附加到您的应用创建的作业中
  • 允许您的应用修改您的应用创建的学生提交内容
  • 允许学生上交作业
查看和评分作业 不支持指定或返回成绩
  • 允许您的应用代表教师从 Google 课堂中提取所有学生提交的数据
  • 提供分配学生成绩(草稿或最终成绩)的功能
  • 公开了修改学生成绩的功能
  • 提供将成绩发回给学生的功能