本页介绍了如何使用 Google Chat API 与 Google Workspace 组织中的特定用户共享 Google Chat 聊天室,以便他们可以发现、加入聊天室并查看聊天室成员。
如需指定贵组织中哪些用户可以发现、加入聊天室并查看聊天室成员,您可以创建目标对象群组。目标受众群体是指您可以与之共享 Chat 聊天室的一群人(例如特定部门或整个组织),以便更精细地控制哪些人可以访问该聊天室及其信息。借助目标受众群体,您还可以管理和自定义聊天室成员,而无需邀请单个用户加入聊天室。如需了解详情,请参阅目标受众群体简介。
您只能让指定的目标受众群体发现命名聊天室。您无法与目标对象群组分享其他类型的聊天室,例如私信或群组对话。
前提条件
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。 您的账号必须具有 Google Workspace 组织的超级管理员角色。
- 可在 Chat 中访问的目标受众群体。如需创建目标对象群组,请参阅创建目标对象群组。如需使现有目标对象群组可用于 Chat 聊天室,请参阅为 Chat 设置聊天室访问权限。
- 您必须通过用户身份验证来调用 Google Chat API。
获取目标受众群体 ID
如需获取目标受众群体的 ID,请执行以下操作:
在 Google 管理控制台中,依次点击菜单 > 目录 > 目标对象群组。
在目标受众群体表格中,点击目标受众群体的名称字段。
在相应网页的网址中找到目标受众群体 ID。网址格式为
https://admin.google.com/ac/targetaudiences/TARGET_AUDIENCE_ID,其中TARGET_AUDIENCE_ID是目标受众群体的字母数字 ID。
在下一部分中,您将使用目标受众群体 ID 创建开放型聊天室,或更新现有聊天室以使其可供目标受众群体发现。
指定目标受众群体和精细权限
如需创建具有特定访问权限的空间,请对 Space 资源使用 create 或 setup 方法。如需更新现有空间的权限,请使用 update 方法。由于只有命名空间可以与目标受众群体共享,因此空间类型(以 spaceType 字段表示)必须为 SPACE。
如需指定哪些人可以发现、加入聊天室或查看聊天室成员,请在 Space 资源中添加 AccessSettings 对象。在该对象中,使用 accessPermissionSettings 字段指定以下一项或多项权限:
- 可供搜索:使用
discoverSpaceSetting可定义哪些人可以在 Google Chat 中查找聊天室的名称和说明并浏览相应聊天室。您可以指定多个目标受众群体以进行发现。 - 可加入:使用
joinSpaceSetting可定义哪些用户无需明确邀请即可加入聊天室并预览聊天室消息。能够加入聊天室的用户也必须能够发现该聊天室。Google Chat 支持为此权限设置单个目标受众群体。 - 查看成员:使用
viewSpaceMembershipSetting可定义哪些人可以查看聊天室中的成员列表。更新谁可以查看聊天室成员时,必须在updateMask和请求正文中同时指定accessSettings.accessPermissionSettings.viewSpaceMembershipSetting和permissionSettings.viewSpaceMembership。如果在viewSpaceMembershipSetting中配置了目标受众群体,则必须向所有成员授予viewSpaceMembership(managersAllowed、assistantManagersAllowed和membersAllowed设置为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_1 和 TARGET_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 对象具有以下值:
accessState:DISCOVERABLEaudience:省略或null
如果您看到 accessState 设置为 DISCOVERABLE 但不存在 audience,则表示目标受众群体可以在 discoverSpaceSetting 中发现相应聊天室,但只能通过邀请加入。如需查看哪些目标受众群体可以发现聊天室,请查看 accessPermissionSettings.discoverSpaceSetting 字段。
相关主题
如需详细了解目标对象群组,请参阅以下指南:
如需详细了解如何使用 Chat API 创建或更新聊天室,请参阅以下指南: