本指南介绍了如何对 Google Chat API 的 Space
资源使用 setUp()
方法来设置 Google Chat 聊天室。设置聊天室会创建一个聊天室,并向其中添加指定用户。
Space
资源表示用户和 Chat 应用可以发送消息、共享文件和协作的场所。聊天室有以下几种类型:
- 私信 (DM) 是指两位用户或一位用户与 Chat 应用之间的对话。
- 群组聊天是指三人或更多用户与 Chat 应用之间的对话。
- 命名聊天室是用户发送消息、共享文件和协作的永久性场所。
设置聊天室时,请考虑以下事项:
- 发起调用(经过身份验证)的用户会自动添加到聊天室,因此您无需在请求中指定用户的成员资格。
- 创建私信 (DM) 时,如果两位用户之间存在私信,系统会返回该私信。否则,系统会创建直接消息。
- 创建群聊时,如果请求中提供的成员资格均未成功添加到群聊中(例如,存在权限问题),系统可能会创建空群聊(仅包括发起通话的用户)。
- 您无法设置带有“话题式回复”的聊天室,也无法添加 Google Workspace 外部的人员。
- 请求中提供的重复成员资格(包括发起调用的用户)会被滤除,而不是导致请求错误。
前提条件
Node.js
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置您的环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 为您的 Chat 应用启用和配置 Google Chat API,并为其指定一个名称、图标和说明。
- 安装 Node.js Cloud 客户端库。
- 为桌面应用
创建 OAuth 客户端 ID 凭据。如需运行本指南中的示例,请将凭据保存为名为
client_secrets.json
的 JSON 文件,并保存到本地目录。
- 选择支持用户身份验证的授权范围。
Python
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用和配置 Google Chat API,为 Chat 应用提供名称、图标和说明。
- 安装 Python Cloud 客户端库。
- 为桌面应用
创建 OAuth 客户端 ID 凭据。如需运行本指南中的示例,请将凭据以 JSON 文件格式
client_secrets.json
保存到您的本地目录中。
- 选择支持用户身份验证的授权范围。
Java
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 为您的 Chat 应用启用和配置 Google Chat API,并为其指定一个名称、图标和说明。
- 安装 Java Cloud 客户端库。
- 为桌面应用
创建 OAuth 客户端 ID 凭据。如需运行本指南中的示例,请将凭据保存为名为
client_secrets.json
的 JSON 文件,并保存到本地目录。
- 选择支持用户身份验证的授权范围。
Apps 脚本
- 有权访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 权限请求页面。
- 为您的 Chat 应用启用和配置 Google Chat API,并为其指定一个名称、图标和说明。
- 创建一个独立的 Apps 脚本项目,然后开启高级聊天服务。
- 选择支持用户身份验证的授权范围。
设置聊天室
如需设置聊天室,请在请求中传递以下内容:
- 指定
chat.spaces.create
或chat.spaces
授权范围。 - 调用
SetUpSpace()
方法。 - 将
space
作为Space
的实例传递,并附带所有必要字段,例如displayName
或spaceType
。 - 将
memberships
作为Membership
实例的数组传递。对于每个实例:- 指定
users/{user}
以将真人用户添加为聊天室成员,其中{user}
是 People API 中的person
的{person_id}
,或 Directory API 中的user
的 ID。例如,如果 People API 人员resourceName
为people/123456789
,您可以通过添加users/123456789
作为member.name
的成员资格,将该用户添加到聊天室。 - 指定
groups/{group}
以将群组添加为聊天室成员,其中{group}
是您要为其创建成员资格的群组 ID。您可以使用 Cloud Identity API 检索群组的 ID。例如,如果 Cloud Identity API 返回名称为groups/123456789
的群组,则将membership.groupMember.name
设置为groups/123456789
。您无法将 Google 群组添加到群聊或私信中,只能添加到命名聊天室中。
- 指定
如需在发起通话的用户与其他真人用户之间创建私信,请在请求中指定真人用户的成员资格。
如需在发起通话的用户和发起通话的应用之间创建私信,请将 space.singleUserBotDm
设为 true
,并勿指定任何成员资格。您只能使用此方法通过通话应用设置私信。如需将通话应用添加为聊天室的成员或两个真人用户之间的现有私信的成员,请参阅创建成员资格。
以下示例会创建一个命名聊天室,并为两名真人用户(经过身份验证的用户和另一名用户)创建一个聊天室成员资格。
Node.js
Python
Java
Apps 脚本
如需运行该示例,请替换以下内容:
DISPLAY_NAME
:新聊天室的显示名。USER_NAME
:要为其添加会员资格的其他用户的 ID。
如需前往聊天室,请使用聊天室的资源 ID 构建聊天室的网址。
您可以从 Google Chat 响应正文中的聊天室 name
获取资源 ID。例如,如果聊天室的 name
为 spaces/1234567
,您可以使用以下网址前往该聊天室:https://mail.google.com/chat/u/0/#chat/space/1234567
。
相关主题
- 创建聊天室。
- 获取有关聊天室的详细信息。
- 列出聊天室。
- 更新聊天室。
- 删除聊天室。
- 查找私信聊天室。
- 让特定用户可以发现聊天室。