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 建议您使用此项目在受控环境中开发和测试插件。

您需要有权访问拥有教与学升级版或 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 将您的演示网域升级到具有 10 个许可的 Google Workspace 教育 Plus 版,并允许您的 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 应用配置应用可见性设置为 private

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

创建公共 Google Cloud 项目

此项目代表管理员、教师和学生可以访问的插件应用。

  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. 与您的 Google 合作伙伴分享 Cloud 项目 ID 或 Cloud 项目编号,以将项目添加到插件许可名单中。这样一来,项目就可以使用 Classroom API 的新插件功能。

  6. 填写 Marketplace SDK 商品详情页面中必填字段,然后点击发布

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

OAuth 2.0

必须征得用户同意才能使用 Classroom API。请求 Google 访问已登录用户的 OAuth 范围,并接收可用于后续对 Google 课堂进行 API 调用的令牌,即可获得这些令牌。必须在 Google Workspace Marketplace 商品详情中配置范围,以便网域管理员可以在安装插件时代表网域用户表示同意。

如需查看所有可用范围及其用途的详细列表,请参阅 Google API 的 OAuth 范围页面。如需了解常规 OAuth 配置信息,请参阅工作区文档中的配置 OAuth 页面

用户权限

您的 Web 应用应请求以下至少一个范围:

  • https://www.googleapis.com/auth/userinfo.email,允许应用查看用户的电子邮件地址。
  • https://www.googleapis.com/auth/userinfo.profile,允许应用查看个人信息,例如肖像、姓氏和名字,以及用户公开的其他个人信息。

用户在您的插件中授权其中一个范围后,系统就会通过 login_hint 查询参数标识这些范围。当 iframe 打开时,此参数会传递给 Web 应用的任何网址。如果用户未授权其中某个范围,则系统会改为将 hd(“托管网域”)参数传递给 Web 应用的网址。

login_hinthd 是标准的 OpenID Connect 参数,您可以在使用 Google 登录或请求 OAuth 令牌时选择性地将这些参数传递给 Google。旨在为最终用户提供更顺畅的授权体验。

Google 课堂插件范围

以下范围仅适用于 Google 课堂插件:

  • 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,则进行验证;如果插件上没有现成的附件,则必须验证此信息)

OAuth 验证

Google 课堂插件使用 Google API 访问 Google 用户的数据。

如需详细了解验证流程,请参阅 OAuth API 验证常见问题解答

Google Workspace Marketplace 产品详情

在此抢先体验计划期间,为 Google 课堂插件创建 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”。

    • 简短说明详细说明包含的文字不应完全相同。

    • 确保您已为 Pricing(价格)字段选择值。此字段包括免费付费可免费试用付费使用免费功能付费价格选项。您无需在 Marketplace 产品详情中指定费用金额。

    • 确保您已为 Category 字段选择一个值。学术资源教师和管理工具可能是 Google 课堂插件的理想选择。

    • 如需了解更多信息,请参阅 Marketplace 的应用详细说明中列出的产品。

  • 图形资源下:

  • 支持链接下:

    • 确保您已提供指向应用的服务条款的链接。
  • 确保您遵循 Google API 品牌推广指南,其中包括允许使用的名称和说明。

  • 如果您在商品详情中提及任何 Google 产品,请按照商标列表中提供的格式使用其名称。确保包含商标 (TM) 符号(如已指定);使用“Google 文档 TM”,而不是“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 查找要附加到作业的内容或活动。

您还必须指定允许来自您的插件的附件的所有 URI 前缀。此功能可以防止来自未经授权的来源的附件,从而提高安全性。

如需详细了解这些字段,请参阅 iframe 指南页面

测试账号

在您的演示网域上创建测试帐号,以验证专用插件的正确行为。需要两个学生帐号才能测试“学生作业评价”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.管理控制台中创建群组链接的位置。