Google Cloud 项目配置

本页面包含有关为 Google 课堂插件创建和配置 Google Cloud 项目的必要信息。Google Cloud 项目用于通过 OAuth 2.0 (Google SSO) 实现 Google 单点登录、授权插件发出的请求,以及管理插件在 Google Workspace Marketplace 商店中的商品详情。

如需了解有关将插件发布到 Marketplace 的更多一般信息,请参阅发布应用

Google Cloud 项目创建

您可以创建两种类型的项目:用于开发的私密项目和最终用户可访问的公开项目。“公开”和“私密”标签是指应用在 Google Workspace Marketplace 中的公开范围;私密 Marketplace 应用只能由创建该应用的网域中的用户安装,而公开 Marketplace 应用可供任何 Google Workspace 网域使用。这两个应用必须是分开的,因为一个项目不能同时是公开项目和私密项目。公开应用必须先接受审核并获得批准,然后才能在 Marketplace 中提供。

如需了解有关创建 Google Cloud 项目的一般信息,请访问创建 Google Cloud 项目

创建公开 Google Cloud 项目

此项目表示管理员、教师和学生可访问的插件应用。公开项目必须经过 Google Workspace Marketplace 团队的审核和批准,然后才能启动或安装。

  1. 在生产网域中创建新的 Google Cloud 项目。

    创建 Google Cloud 项目

  2. 在您的 Cloud 项目中启用 Classroom API。

    启用 Classroom API

  3. 在 Cloud 项目中启用 Google Workspace Marketplace SDK。

    启用 Google Workspace Marketplace SDK

  4. 将 Marketplace SDK 的应用配置 应用公开范围设置为公开,然后勾选不公开列出复选框。

  5. 在 Marketplace SDK 的商店详情页面中填写必填字段,然后点击发布

  6. Google Workspace Marketplace 团队将审核您的应用。他们将使用 Marketplace SDK 中指定的开发者电子邮件地址与您联系。应用获得批准后,请清除不公开列出复选框,以便教师和管理员可以在 Marketplace 中找到该应用。

创建私有 Google Cloud 项目

私有项目表示用于开发的插件应用。它无法供创建网域之外的用户访问,但无需在安装前获得批准。因此,Google 建议您使用此项目在受控环境中开发和测试插件。

您需要有权访问具有教与学许可或 Plus 许可的 Google Workspace 教育版网域,才能创建私有项目。如果您还没有此类网域的访问权限,请按以下步骤设置 Google Workspace 教育版演示网域,将其升级为 Plus 许可,并允许其访问 Classroom 加购项 API:

  1. 完成获取开发者测试网域一文中的步骤。
  2. 在演示网域中以管理员身份登录后,创建一个新的 Google Cloud 项目。

    创建 Google Cloud 项目

    如果您无法访问 Google Cloud 控制台或创建 Cloud 项目,请在 管理控制台中检查以下内容:

    • 访问账号设置 > 基于年龄的访问权限设置页面,然后选择此群组或组织部门中的所有用户都已年满 18 周岁选项。
    • 应用 > 附加 Google 服务下方:
    • Google Cloud Platform 已为所有人启用
    • 项目创建设置是允许用户创建项目
    • Cloud Shell 访问权限设置是允许访问 Cloud Shell
  3. 填写并提交演示网域升级申请表单。提交此表单即表示您请求 Google 将您的演示网域升级为 Google Workspace 教育 Plus 版(包含 10 个许可),并允许您的 Cloud 项目访问 Classroom 插件 API。

    升级和许可名单流程完成后,您会收到一封电子邮件。在 管理控制台中为测试教师账号分配 Plus 许可。在目录 > 用户下,创建或选择您的测试教师账号。在每位教师的许可中,确认 Google Workspace 教育 Plus 版处于已分配状态。

  4. 在您的 Cloud 项目中启用 Classroom API。

    启用 Classroom API

  5. 在 Cloud 项目中启用 Google Workspace Marketplace SDK。

    启用 Google Workspace Marketplace SDK

  6. 将 Marketplace SDK 的应用配置 应用可见性设置为私有

  7. 在 Marketplace SDK 的商店详情页面中填写必填字段,然后点击发布。应用详情发布后,网域中的用户可以在 Google Workspace Marketplace 中找到并安装该应用,也可以访问商品详情页面中显示的应用网址来安装该应用。

OAuth 2.0

访问 Classroom API 需要征得用户同意,才能访问用户数据。这些令牌是通过请求 Google 访问已登录用户的 OAuth 范围获得的,并且会收到一个令牌,该令牌可用于随后向 Google 课堂发出 API 调用。必须在 Google Workspace Marketplace 商店详情中配置范围,以便网域管理员在安装插件时能够代表其网域用户提供同意声明。

由于 Google 课堂范围属于敏感范围,因此您必须先申请 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。旨在为最终用户提供更顺畅的授权体验。

Google 课堂插件范围

以下范围特定于 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 验证

Google 课堂插件使用 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 商品详情中指定费用金额。
    • 确保您已为类别字段选择值。 学术资源教师和管理员工具可能是 Google 课堂插件的理想选择。
    • 如需了解详情,请参阅 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 项目控制台中设置。

iframe URI 配置

允许使用的附件 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. 登录管理控制台
  2. 前往用户
  3. 点击添加新用户(见图 1)。
  4. 输入用户信息并分配适当的角色。

点击“添加新用户” 图 1. 管理控制台中添加新用户链接的位置。

请按照以下步骤创建新的测试组

  1. 登录管理控制台
  2. 前往群组
  3. 点击创建群组(见图 2)。
  4. 输入群组的成员和所有者。

点击“创建群组” 图 2. 管理控制台中创建群组链接的位置。