将 Google Chat 聊天室设为可供 Google Workspace 组织中的特定用户检测到

本页介绍了如何使用 Google Chat API 与 Google Workspace 组织中的特定用户共享 Google Chat 聊天室,以便他们可以发现、加入聊天室并查看聊天室成员。

如需指定贵组织中哪些用户可以发现、加入聊天室并查看聊天室成员,您可以创建目标对象群组。目标受众群体是指您可以与之共享 Chat 聊天室的一群人(例如特定部门或整个组织),以便更精细地控制哪些人可以访问该聊天室及其信息。借助目标受众群体,您还可以管理和自定义聊天室成员,而无需邀请单个用户加入聊天室。如需了解详情,请参阅目标受众群体简介

您只能让指定的目标受众群体发现命名聊天室。您无法与目标对象群组分享其他类型的聊天室,例如私信或群组对话。

前提条件

获取目标受众群体 ID

如需获取目标受众群体的 ID,请执行以下操作:

  1. 在 Google 管理控制台中,依次点击菜单 > 目录 > 目标对象群组

    前往“目标对象群组”

  2. 目标受众群体表格中,点击目标受众群体的名称字段。

  3. 在相应网页的网址中找到目标受众群体 ID。网址格式为 https://admin.google.com/ac/targetaudiences/TARGET_AUDIENCE_ID,其中 TARGET_AUDIENCE_ID 是目标受众群体的字母数字 ID。

在下一部分中,您将使用目标受众群体 ID 创建开放型聊天室,或更新现有聊天室以使其可供目标受众群体发现。

指定目标受众群体和精细权限

如需创建具有特定访问权限的空间,请对 Space 资源使用 createsetup 方法。如需更新现有空间的权限,请使用 update 方法。由于只有命名空间可以与目标受众群体共享,因此空间类型(以 spaceType 字段表示)必须为 SPACE

如需指定哪些人可以发现、加入聊天室或查看聊天室成员,请在 Space 资源中添加 AccessSettings 对象。在该对象中,使用 accessPermissionSettings 字段指定以下一项或多项权限:

  • 可供搜索:使用 discoverSpaceSetting 可定义哪些人可以在 Google Chat 中查找聊天室的名称和说明并浏览相应聊天室。您可以指定多个目标受众群体以进行发现。
  • 可加入:使用 joinSpaceSetting 可定义哪些用户无需明确邀请即可加入聊天室并预览聊天室消息。能够加入聊天室的用户也必须能够发现该聊天室。Google Chat 支持为此权限设置单个目标受众群体。
  • 查看成员:使用 viewSpaceMembershipSetting 可定义哪些人可以查看聊天室中的成员列表。更新谁可以查看聊天室成员时,必须在 updateMask 和请求正文中同时指定 accessSettings.accessPermissionSettings.viewSpaceMembershipSettingpermissionSettings.viewSpaceMembership。如果在 viewSpaceMembershipSetting 中配置了目标受众群体,则必须向所有成员授予 viewSpaceMembershipmanagersAllowedassistantManagersAllowedmembersAllowed 设置为 true)。

以下示例展示了如何设置聊天室,让两个目标对象群组能够发现此聊天室,但只有其中一个群组可以加入,并确保所有成员和指定的目标对象群组都能查看成员列表:

{
  "accessSettings": {
    "accessPermissionSettings": {
      "discoverSpaceSetting": {
        "principals": [
          { "audience": { "name": "audiences/TARGET_AUDIENCE_ID_1" } },
          { "audience": { "name": "audiences/TARGET_AUDIENCE_ID_2" } }
        ]
      },
      "joinSpaceSetting": {
        "principals": [
          { "audience": { "name": "audiences/TARGET_AUDIENCE_ID_1" } }
        ]
      },
      "viewSpaceMembershipSetting": {
        "principals": [
          { "audience": { "name": "audiences/TARGET_AUDIENCE_ID_1" } },
          { "audience": { "name": "audiences/TARGET_AUDIENCE_ID_2" } }
        ]
      }
    }
  },
  "permissionSettings": {
    "viewSpaceMembership": {
      "managersAllowed": true,
      "assistantManagersAllowed": true,
      "membersAllowed": true
    }
  }
}

TARGET_AUDIENCE_ID_1TARGET_AUDIENCE_ID_2 替换为您在获取目标受众群体 ID 中获取的目标受众群体的 ID。如需为 Google Workspace 组织使用默认的 Chat 聊天室共享设置,请替换为 default

为了实现向后兼容性,请使用 audience 字段

为了实现向后兼容性,您可以继续使用 audience 字段来指定可加入会议室的单个目标受众群体,但我们建议您改用指定目标受众群体和精细权限

设置 audience 字段的效果相当于在 joinSpaceSetting 中指定目标受众群体:

  "accessSettings": {
    "audience": "audiences/TARGET_AUDIENCE_ID"
  }

TARGET_AUDIENCE_ID 替换为您在获取目标受众群体 ID 中获取的目标受众群体 ID。 如需为 Google Workspace 组织使用默认的 Chat 聊天室共享设置,请替换为 default

了解 API 响应中的访问权限设置

当您获取或列出聊天室时,响应中的 AccessSettings 对象会反映为聊天室设置的精细权限。

AccessSettings 中的以下字段用于指明空间的搜索能力和加入权限:

  • accessState:派生自发现权限 (discoverSpaceSetting)。如果向一个或多个目标受众群体授予了发现权限,则此字段为 DISCOVERABLE。否则为 PRIVATE
  • audience:专门映射到加入权限 (joinSpaceSetting)。如果单个目标受众群体被授予加入权限,此字段会包含相应目标受众群体的资源名称。

没有加入受众群体的开放型聊天室

聊天室可能对目标受众群体可见,但无法直接加入(例如,用户必须受到明确邀请才能加入)。

在这种情况下,AccessSettings 对象具有以下值:

  • accessStateDISCOVERABLE
  • audience:省略或 null

如果您看到 accessState 设置为 DISCOVERABLE 但不存在 audience,则表示目标受众群体可以在 discoverSpaceSetting 中发现相应聊天室,但只能通过邀请加入。如需查看哪些目标受众群体可以发现聊天室,请查看 accessPermissionSettings.discoverSpaceSetting 字段。

如需详细了解目标对象群组,请参阅以下指南:

如需详细了解如何使用 Chat API 创建或更新聊天室,请参阅以下指南: