本页介绍了为 Google 课堂插件创建和配置 Google Cloud 项目时需要了解的信息。Google Cloud 项目用于通过 OAuth 2.0(Google 单点登录)实现 Google 单点登录,授权插件发出的请求,以及管理插件在 Google Workspace Marketplace 商店中的商品详情。
如需了解有关将插件发布到 Marketplace 的更多一般信息,请参阅 发布应用。
创建 Google Cloud 项目
您可以创建两种类型的项目:一种是用于开发的私有 项目,另一种是最终用户可以访问的公开 项目。“公开”和 “私有”标签是指应用在 Google Workspace Marketplace中的可见性;私有 Marketplace 应用只能由创建该应用的网域中的用户安装,而公开 Marketplace 应用可供任何 Google Workspace 网域使用。这必须是两个单独的应用,因为项目不能同时是公开项目和私有项目。公开应用必须经过审核和批准后才能在 Marketplace 中提供。
如需了解有关创建 Google Cloud 项目的一般信息,请访问创建 Google Cloud 项目。
创建公开 Google Cloud 项目
此项目表示管理员、教师和学生可以访问的插件应用。公开项目必须经过 Google Workspace Marketplace 团队的审核和批准后才能启动或安装。
在生产网域中创建新的 Google Cloud 项目。
在 Cloud 项目中启用 Classroom API。
在 Cloud 项目中启用 Google Workspace Marketplace SDK。
将 Marketplace SDK 应用配置 应用可见性设置为公开,然后选中不公开列出复选框。
填写 Marketplace SDK 商店商品详情页面中的必填字段,然后点击 发布。
Google Workspace Marketplace 团队将审核您的应用。他们将使用您在 Marketplace SDK 中指定的开发者电子邮件地址与您联系。应用获得批准后,请清除 不公开列出 复选框,以便教师和管理员可以在 Marketplace 中找到该应用。
创建私有 Google Cloud 项目
此私有 项目表示用于开发的插件应用。 创建该项目时,只有创建该项目的网域中的用户才能访问该项目,但无需在安装前获得批准。因此,Google 建议您使用此项目在受控环境中开发和测试插件。
您需要拥有 Google Workspace 教育版网域的访问权限,并且该网域必须具有教学版或 Plus 版许可,才能创建私有项目。如果您还没有此类 网域的访问权限,请按照以下步骤设置 Google Workspace 教育版演示网域,将其升级为 Plus 版许可,并允许其访问 Classroom 插件 API:
- 按照相应步骤获取开发者测试网域。
以演示网域中的管理员身份登录,然后创建新的 Google Cloud 项目。
如果您无法访问 Google Cloud 控制台或创建 Cloud 项目,请在 管理控制台中检查以下内容:
- 访问账号设置 > 基于年龄的访问权限设置 页面,然后选择此群组或组织部门中的所有用户都已年满 18 周岁 选项。
- 在应用 > 附加 Google 服务 下:
- Google Cloud Platform 对所有人启用 。
- 项目创建设置是允许用户创建项目 。
- Cloud Shell 访问权限设置是允许访问 Cloud Shell 。
填写并提交演示网域升级申请表单。提交此表单即表示您请求 Google 将演示网域升级为 Google Workspace 教育 Plus 版(包含 10 个许可),并允许您的云项目访问 Classroom 插件 API。
升级和许可名单流程完成后,您会收到一封电子邮件。在 管理控制台中为测试教师账号分配 Plus 版许可。在目录 > 用户 下,创建或选择测试教师账号。在每位 教师的 许可 中,确认 Google Workspace 教育 Plus 版已 分配 。
在 Cloud 项目中启用 Classroom API。
在 Cloud 项目中启用 Google Workspace Marketplace SDK。
将 Marketplace SDK 应用配置 应用可见性 设置为 私有。
填写 Marketplace SDK 商店商品详情页面中的必填字段,然后点击 发布。应用商品详情发布后,网域中的用户 可以在 Google Workspace Marketplace 中找到并安装该应用,也可以 访问“商店商品详情”页面中显示的 应用网址 来安装该应用。
OAuth 2.0
如需访问 Classroom API,您需要获得用户数据访问权限。您可以通过请求 Google 访问已登录用户的 OAuth 范围来获取这些权限,并接收可用于随后向 Google 课堂发出 API 调用的令牌。您必须在 Google Workspace Marketplace 商店商品详情中配置范围,以便网域管理员在用户安装插件时代表其网域用户提供同意声明。
由于 Classroom 范围属于敏感范围,因此您必须在启动插件之前请求 OAuth 验证。否则,用户会看到一条警告消息,指出该应用未经验证,并且只有少数用户能够访问您的产品。如需详细了解验证,请参阅审核流程 概览。
如需查看所有可用 范围及其用途的详细列表,请参阅 Google API 的 OAuth 范围页面。如需了解有关 OAuth 配置的一般信息,请参阅 Workspace 文档中的配置 OAuth 页面 。
用户权限
您的 Web 应用应请求至少一个 以下范围:
https://www.googleapis.com/auth/userinfo.email,允许应用查看用户的电子邮件地址。https://www.googleapis.com/auth/userinfo.profile,允许应用查看个人信息,例如头像、名字和姓氏,以及用户公开的其他个人信息。
用户在插件中授权其中一个范围后,系统会使用 login_hint 查询参数来标识该用户。当 iframe 打开时,此参数会传递给 Web 应用的任何网址。如果用户未授权其中一个范围,则不会发送 login_hint。
login_hint 是一个标准的 OpenID Connect 参数,您可以在使用 Google 登录或请求 OAuth 令牌时选择性地将其传递给 Google。其目的是让最终用户的授权体验更加顺畅。
Classroom 插件范围
以下范围特定于 Classroom 插件:
https://www.googleapis.com/auth/classroom.addons.teacher,允许访问所有 API 方法。https://www.googleapis.com/auth/classroom.addons.student,允许访问启动验证和附件读取操作。
即使有表示用户凭据的有效 OAuth 访问令牌,API 调用也会受到其他要求的限制:
- 所有方法都要求用户是请求中
courseId指定的课程中的教师或学生。 - 附件创建、更新、删除和成绩回传要求用户是教师。
- 对特定 Google 课堂 帖子的调用受到以下检查的限制。
- 如果插件在帖子中已有至少一个附件,则可以发出以下请求:
- iframe 启动验证
- 附件读取、更新和删除操作
- 该帖子的成绩更新
- 首次打开附件发现 iframe 时,插件可能尚未在帖子中添加附件。系统会提供一个
addOnToken查询参数,可用于发出以下请求:- 在帖子下创建附件(需要
addOnToken) - 启动验证(如果提供了
addOnToken,系统会对其进行验证;如果插件在帖子中没有现有附件,则需要提供addOnToken)
- 在帖子下创建附件(需要
- 如果插件在帖子中已有至少一个附件,则可以发出以下请求:
OAuth 验证
Classroom 插件使用 Google API 访问 Google 用户的数据。
如需详细了解 验证流程,请参阅OAuth API 验证常见问题解答。
Google Workspace Marketplace 商品详情
如需了解有关 Google Workspace Marketplace SDK 配置的一般信息,请参阅 启用并配置 Google Workspace Marketplace SDK 和 创建 Google Workspace Marketplace 商店商品详情。
商品详情注意事项
公开 Google Cloud 项目的 Marketplace SDK“商店商品详情”指定了面向最终用户的应用名称和 说明。您可以在应用详细信息 下以多种语言提供这些详细信息。
请在商品详情中遵循以下准则:
- 在应用详细信息下:
- 避免在应用名称中使用标点符号。例如,请使用“My Add-on by My Company”,而不是“My Company: My Add-on”或“My Add-on, by My Company”。
- 简短说明 和详细说明 不应包含完全相同的文本。
- 确保您已为价格 字段选择一个值。此字段包含“免费”“付费(含免费试用)”“付费(含免费功能)”和“付费”价格选项。您无需在 Marketplace 商品详情中指定费用金额。
- 确保您已为类别 字段选择一个值。 对于 Classroom 插件,学术资源或教师和管理员工具可能是很好的选择。
- 如需了解详情,请参阅 Marketplace 的“应用 详细信息”说明中列出的项。
- 在图形素材资源下:
- 提供的任何图形资源都不模糊,并且符合 Google Workspace Marketplace 标准中指定的大小
- 提供的任何屏幕截图都准确地展示了插件 体验。
- 在支持链接下:
- 确保您已提供应用的服务条款 的链接。
- 确保您符合 Google API 品牌推广准则,该准则 涵盖了允许使用的名称和说明。
- 如果您在商品详情中提及任何 Google 产品,请使用 商标列表提供的格式。确保您包含 商标 (™) 符号(如果指定了该符号);请使用“Google 文档™”,而不是“Google 文档”。
与 Google 的许可和结算服务集成
如果您希望 Google Workspace Marketplace 应用 与 Google 的许可和结算服务集成,请访问 Marketplace API。
安装设置
除了管理员 安装之外,插件还可以允许单独 安装。本页重点介绍了这两种安装类型之间的一些区别,但无意推广任何一种安装类型。您可以在 Google Workspace Marketplace SDK 应用配置页面中选择是否允许单独安装。
管理员安装
通过管理员安装 ,管理员可以将插件添加到网域中的所有账号,或添加到特定的访问群组或组织部门。只有网域管理员才能执行管理员安装。管理员可以选择代表网域中的所有用户同意所有访问范围;如果管理员选择这样做,系统不会提示用户同意任何访问范围。
以下是有关管理员安装的一些注意事项。
- 更严格的控制。管理员可以限制哪些用户可以访问插件。
- 与许可的兼容性。如果您的应用需要许可,通过管理员渠道进行安装可能有助于确保许可得到适当分发,并由相应机构使用。
- 减轻最终用户的负担。管理员安装可以减少教师和学生的设置负担。这可能会带来更顺畅的用户体验,减少点击次数,并减少混淆的机会。
如需详细了解如何执行管理员安装,请参阅在您的网域中安装 Marketplace 中的应用;如需详细了解组织部门和访问群组,请参阅组织结构的工作原理。
单独安装
通过单独安装 ,插件会添加到用户自己的账号。系统会在安装期间提示用户同意插件的访问范围。
以下是有关单独安装的一些注意事项。
- 方便采用。更多用户可以在 Google Workspace Marketplace 中看到并安装您的插件。允许单独安装可能会促使更多教师采用或推荐您的产品。
- 管理员测试。管理员可以单独安装插件,以便在批准或为更广泛的群组安装插件之前对其进行测试或评估。
除了代表用户安装插件之外,管理员还可以维护许可名单,以允许用户安装允许单独安装的插件。如果插件不在许可名单中,用户仍然可以在 Google Workspace Marketplace 中看到插件的商品详情,但无法安装该插件;他们会看到一条消息,说明网域管理员不允许安装该插件。如需详细了解此行为,请参阅管理许可名单中的 Google Workspace Marketplace 中的应用。
如需了解详情,请参阅 Google Workspace Marketplace 安装设置文档,了解 更多信息。
应用集成
您必须在附件设置 URI 字段中提供启动 iframe 网址。此
网址用作附件发现 iframe 的 iframe src 值。教师可以使用附件发现 iframe 查找要附加到作业的内容或活动。您可以在 Google Cloud 项目控制台中进行设置。
允许使用的附件 URI 前缀 用于使用*.addOnAttachments.create 和
*.addOnAttachments.patch 方法验证
AddOnAttachment 中设置的 URI。验证是字面字符串前缀匹配,不允许使用通配符。
您还必须指定允许插件从中添加附件的所有 URI 前缀 。此功能可防止附件来自未经授权的来源,从而提高安全性。
在 Google Cloud 项目的 Marketplace SDK 应用配置 页面中设置这两个值。
测试账号
在演示网域中创建测试账号,以验证私有插件的行为是否正确。您需要两个学生账号来测试在“学生作业审核”iframe 中切换学生。
建议的测试账号:
- Tammy Teacher,tammy.teacher@<您的演示网域>
- Sam Student,sam.student@<您的演示网域>
- Sally Student,sally.student@<您的演示网域>
请按照以下步骤创建新的测试账号:
- 登录管理控制台。
- 前往用户 。
- 点击添加新用户 (见图 1)。
- 输入用户信息并分配适当的角色。
图 1.管理控制台中添加新用户 链接的位置。
请按照以下步骤创建新的测试群组:
- 登录管理控制台。
- 前往群组 。
- 点击创建群组 (见图 2)。
- 输入群组成员和所有者。
图 2.管理控制台中创建群组 链接的位置。