常见问题解答

在 Google 课堂中查看、创建和修改课程作业

我可以使用 Classroom API 中的 CourseWork 端点构建什么?

开发者可通过端点查看和管理类中的工作。具体而言,您可以执行以下所有操作:

  • 查看用户的作业和题目(统称为 CourseWork
  • 创建、修改和删除CourseWork
  • 将资料(云端硬盘文件、YouTube 视频、链接)附加到 CourseWork
  • 更改学生提交内容的状态(例如“已交”“已发回”“已收回”)
  • 为作业提交内容设置成绩
  • 在学生提交的作业中附加资料(云端硬盘文件、YouTube 视频、链接)

CourseWork 的一些示例用例:

  • 成绩册、学生信息系统 (SIS) 或报告系统可以将作业和成绩从 Google 课堂同步到其应用,从而消除手动数据传输
  • 学习应用可以创建新的作业,这些作业会显示在课程信息流中。学生完成作业后,应用可以上交作业、设置成绩、附加学生作业,并将作业存储在适当的云端硬盘文件夹中。
  • 教师用户可以通过您的网站或应用创建包含插件附件的作业。
  • 学生用户可以上交包含插件附件的作业。

我的应用需要具备哪些权限才能创建或修改作业?

通常,应用只能修改其创建的工作。换句话说,任何作业更改 API 请求都必须使用在作业创建时存储的 Google Cloud 项目 ID。

Google 课堂插件是这条规则的例外情况。Cloud 项目可以访问或修改包含其一个或多个插件附件的任何通知、作业或资料。Cloud 项目还可以提交、回收或退回包含一个或多个插件附件的作业。

API 请求还需要正确的用户镜重范围。教师可以查看作业、创建作业、附加作业提交内容的链接,以及设置提交内容的成绩。学生可以查看作业、在作业记录中附加链接,以及上交和收回提交内容。网域管理员可以查看 CourseWork,但没有写入权限。

我的申请可以附加哪些类型的作业或提交内容?

该 API 支持附加云端硬盘文件、YouTube 视频和链接。尚不支持附加原生 Google 表单。

最终用户是否知道 Google 课堂中的作业是由我的应用创建的?

可以。Google 课堂界面会使用创建作业的 Google Cloud 项目的产品名称来标识外部创建的作业。用户可以将外部创建的工作报告为不需要的,还可以撤消用户向应用颁发的所有凭据,从而断开创建该工作的应用的连接。

“课堂分享”按钮和其他集成

我已集成“课堂”分享按钮。我可以修改使用“分享”按钮创建的作业吗?

目前还不支持。如需修改作业,请求必须使用创建作业时所用的 Google Cloud 项目。

我可以在 API 中回答问题吗?

目前还不支持。您可以创建和修改问题。

Google 课堂插件

项目配置

我可以将在开发期间使用的私有 Google Cloud 项目转换为可在生产环境中使用的公共项目吗?

您无法将私有 Google Cloud 项目转换为公共项目。您需要两个单独的项目,一个用于开发,一个用于生产。

一个 Google Cloud 项目可以有两个 Google Workspace Marketplace 商品详情吗?

不可以。您无法为单个 Google Cloud 项目创建两个 Google Workspace Marketplace 商品详情。

不过,您可以捆绑加购项。这样,Google Workspace Marketplace 中的单条商品详情可以代表多个插件。然后,从此类商品详情中安装时,系统会同时安装软件包中的所有插件。用户在授权时需要同意捆绑的插件所需的所有权限范围。

是否可以将来自其他 Google Cloud 项目的 OAuth 客户端用于 Google Cloud 项目中的 Google 课堂插件?

不可以,除 Google 课堂插件 Google Cloud 项目之外,其他 Google Cloud 项目中的 OAuth 客户端无法使用。Classroom API 会拒绝由其他 Google Cloud 项目生成的访问令牌。您必须为插件项目创建单独的 OAuth 客户端。

用户体验

我们的徽标不适合放在小方框中,iframe 标题栏中的徽标有哪些尺寸选项?

iframe 标题栏仅支持 32x32 的方形徽标。之所以做出这一选择,是为了与公司在其网站上使用的网站图标形状保持一致。我们建议您在该区域使用相同的徽标,以保持品牌一致性。

网域

同一网域中的所有教师和学生都可以使用已安装的插件吗?

学校管理员可以控制哪些教师可以看到已安装的插件。只有拥有教与学或教育 Plus 版许可的用户才能使用 Google 课堂插件。

网域管理员如何与插件互动?

网域管理员(管理员)可以控制哪些人可以使用您的插件。他们可以使用管理员安装选项为整个网域安装插件。如果您的插件可以单独安装,请注意,大多数管理员都会维护一个插件许可名单;教师可以自行安装此名单中的插件。管理员还可以选择单独安装您的插件以进行测试。

管理员可能也会对与您的插件有关的使用情况统计信息感兴趣。如果您的产品支持,不妨考虑在您自己的网站上通过管理员视图提供插件使用情况统计信息。

API

以下哪种方法可以可靠地判断合作伙伴页面是在 iframe 还是弹出标签页内加载的?

目前没有方法可以区分这两者。

哪些可分配的作业项会显示“学生作业评价”iframe?

学生作业评价 iframe 仅适用于活动类型的附件。调用 courses.courseWork.getAddOnContext 方法可查看帖子类型是否支持学生作业。只有当帖子类型为活动时,supportsStudentWork 字段才能设为 true

插件附件能否访问其所附加的直播内容?

可以。您可以对包含至少一个插件附件的任何 AnnouncementCourseWorkCourseWorkMaterial 执行 getpatch 操作。您可以对 CourseWork StudentSubmission 执行 reclaimreturnturnIn 操作。

单点登录

可以,他们仍然可以使用 Google 登录功能。

每位学生是否都有格式正确的电子邮件地址,即使他们没有 Gmail 访问权限也是如此?

每位 Google Workspace 教育版用户都有 Google 身份,无论他们是否有权使用 Gmail。身份由电子邮件地址表示。对任何特定 Google 服务(包括 Gmail)的身份和访问权限都是不同的。因此,即使 Gmail 已停用,学生用户可以使用自己的电子邮件地址登录。

要让学生登录应用,学校管理员是否需要预先批准该应用?

域名管理员必须先将插件列入许可名单,然后才能安装。(可选)网域管理员可以为网域或组织部门中的所有用户安装插件。

反馈和常见问题

如何提交功能请求或报告问题?

您可以在我们的公开问题跟踪器中提交和查看功能请求,以及对功能请求进行投票。

如何了解 Classroom API 中何时推出新功能?

我们会在版本说明页面开发者论坛公开问题跟踪器上发布 API 更新。

我使用的是 Classroom API。如何询问技术问题?

使用 google-classroom 标签在 Stack Overflow 上发布您的问题。