本指南介绍了如何对 Google Chat API 的 Space
资源使用 setUp()
方法来创建 Chat 聊天室并向其中添加成员。
Space
资源表示用户和 Chat 应用可以发送消息、共享文件和协同工作的场所。聊天室有以下几种类型:
- 私信 (DM) 是两位用户或用户与 Chat 应用之间的对话。
- 群聊是指三人或更多用户与 Chat 应用之间的对话。
- 命名聊天室是用户发送消息、共享文件和协作的永久性场所。
您可以使用 setUp()
方法执行以下任一操作:
- 创建包含初始成员的有名称的聊天室。
- 创建两人之间的私信。
- 设置多人群聊。
设置聊天室时,请考虑以下事项:
- 系统会自动将发起通话的(已通过身份验证)用户添加到聊天室,因此您无需在请求中指定用户的成员资格。
- 创建私信 (DM) 时,如果两位用户之间存在私信,系统会返回该私信。否则,系统会创建直接消息。
- 创建群聊时,如果请求中提供的所有成员资格都未成功添加到群聊中(例如,存在权限问题),则系统可能会创建一个空群聊(仅包含发起群聊的用户)。
- 您无法设置可发起会话式回复的聊天室,也无法添加 Google Workspace 组织之外的用户。
- 系统会滤除请求中提供的重复会员资格(包括发起调用的用户),而不是导致请求错误。
前提条件
Node.js
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用和配置 Google Chat API,为 Chat 应用提供名称、图标和说明。
- 安装 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 凭据。如需运行本指南中的示例,请将凭据保存为名为
client_secrets.json
的 JSON 文件,并保存到本地目录。
- 选择支持用户身份验证的授权范围。
Java
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用和配置 Google Chat API,为 Chat 应用提供名称、图标和说明。
- 安装 Java Cloud 客户端库。
- 为桌面应用
创建 OAuth 客户端 ID 凭据。如需运行本指南中的示例,请将凭据保存为名为
client_secrets.json
的 JSON 文件,并保存到本地目录。
- 选择支持用户身份验证的授权范围。
Apps 脚本
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用和配置 Google Chat API,为 Chat 应用提供名称、图标和说明。
- 创建一个独立的 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
。
相关主题
- 创建聊天室。
- 获取有关聊天室的详细信息。
- 列出聊天室。
- 更新聊天室。
- 删除聊天室。
- 查找私信聊天室。
- 让特定用户可以发现聊天室。