Method: spaces.setup

创建聊天室并向其中添加指定用户。调用用户会自动添加到聊天室,因此不应在请求中指定为成员。如需查看示例,请参阅设置包含初始成员的聊天室

如需指定要添加的人员成员,请添加具有相应 membership.member.name 的成员。如需添加人员用户,请使用 users/{user},其中 {user} 可以是用户的电子邮件地址。对于同一 Workspace 组织中的用户,{user} 也可以是 People API 中人员的 id,或 Directory API 中用户的 id。例如,如果 user@example.com 的 People API 人员个人资料 ID 为 123456789,您可以通过将 membership.member.name 设置为 users/user@example.comusers/123456789,将该用户添加到聊天室。

如需指定要添加的 Google 群组,请添加具有相应 membership.group_member.name 的成员。如需添加或邀请 Google 群组,请使用 groups/{group},其中 {group} 是 Cloud Identity Groups API 中群组的 id。例如,您可以使用 Cloud Identity Groups 查询 API 检索群组邮箱 group@example.com 的 ID 123456789,然后通过将 membership.group_member.name 设置为 groups/123456789,将该群组添加到聊天室。系统不支持群组邮箱,并且只能将 Google 群组作为成员添加到命名聊天室。

对于命名聊天室或群聊,如果调用方屏蔽了某些成员或被某些成员屏蔽,或者没有添加某些成员的权限,则这些成员不会添加到创建的聊天室。

如需在调用用户和另一个人用户之间创建私信对话,请指定一个成员来代表该人用户。如果一个用户屏蔽了另一个用户,则请求会失败,并且不会创建私信对话。

如需在调用用户和调用应用之间创建私信对话,请将 Space.singleUserBotDm 设置为 true,并且不要指定任何成员。您只能使用此方法与调用应用设置私信对话。如需将调用应用添加为聊天室的成员,或添加为两个人员用户之间现有私信对话的成员,请参阅邀请用户或应用加入聊天室或将其添加到聊天室

如果两个用户之间已存在私信对话,即使一个用户在发出请求时屏蔽了另一个用户,系统也会返回现有的私信对话。

系统不支持使用消息串式回复的聊天室。如果在设置聊天室时收到错误消息 ALREADY_EXISTS,请尝试使用其他 displayName。Google Workspace 组织中的现有聊天室可能已使用此显示名称。

需要使用以下授权范围之一进行用户身份验证

  • https://www.googleapis.com/auth/chat.spaces.create
  • https://www.googleapis.com/auth/chat.spaces

HTTP 请求

POST https://chat.googleapis.com/v1/spaces:setup

网址采用 gRPC 转码语法。

请求正文

请求正文中包含结构如下的数据:

JSON 表示法
{
  "space": {
    object (Space)
  },
  "requestId": string,
  "memberships": [
    {
      object (Membership)
    }
  ]
}
字段
space

object (Space)

必需。必须提供 Space.spaceType 字段。

如需创建聊天室,请将 Space.spaceType 设置为 SPACE,并设置 Space.displayName。如果在设置聊天室时收到错误消息 ALREADY_EXISTS,请尝试使用其他 displayName。Google Workspace 组织中的现有聊天室可能已使用此显示名称。

如需创建群聊,请将 Space.spaceType 设置为 GROUP_CHAT。请勿设置 Space.displayName

如需创建人员之间的 1 对 1 对话,请将 Space.spaceType 设置为 DIRECT_MESSAGE,并将 Space.singleUserBotDm 设置为 false。请勿设置 Space.displayNameSpace.spaceDetails

如需在人员和调用 Chat 应用之间创建 1 对 1 对话,请将 Space.spaceType 设置为 DIRECT_MESSAGE,并将 Space.singleUserBotDm 设置为 true。请勿设置 Space.displayNameSpace.spaceDetails

如果 DIRECT_MESSAGE 聊天室已存在,系统会返回该聊天室,而不是创建新聊天室。

requestId

string

可选。此请求的唯一 ID。建议使用随机 UUID。指定请求 ID 可使请求具有幂等性,确保具有相同请求 ID 的多个相同请求只会创建一个聊天室。后续具有相同请求 ID 的请求会返回现有聊天室,并且不会更新聊天室,即使请求的详细信息与当前状态不同也是如此。

如需有效使用此字段,请执行以下操作:

  • 确保后续请求与原始请求相同,并使用相同的身份验证凭据。
  • 如果已使用提供的请求 ID 创建聊天室,则请求会返回该聊天室。请注意,返回的聊天室可能未完全填充;API 会回显您请求中的聊天室,并填充系统分配的资源名称。如需检索聊天室的最新元数据,请调用 spaces.get
  • 使用不同的经过身份验证的用户重复使用现有请求 ID 会导致错误。
memberships[]

object (Membership)

可选。要邀请加入聊天室的 Google Chat 用户或群组。请忽略调用用户,因为系统会自动添加他们。

该集合目前最多允许 49 个成员(除了调用者)。

对于人员成员,Membership.member 字段必须包含一个 user,其中填充了 name(格式:users/{user}),并且 type 设置为 User.Type.HUMAN。您只能在设置聊天室时添加人员用户(仅支持与通话应用设置私信对话时添加 Chat 应用)。您还可以使用用户的电子邮件地址作为 {user} 的别名来添加成员。例如,user.name 可以是 users/example@gmail.com。如需邀请 Gmail 用户或外部 Google Workspace 网域中的用户,必须使用用户的电子邮件地址作为 {user}

对于 Google 群组成员资格,Membership.group_member 字段必须包含一个 group,其中填充了 name(格式:groups/{group})。您只能在将 Space.spaceType 设置为 SPACE 时添加 Google 群组。

Space.spaceType 设置为 SPACE 时为可选。

Space.spaceType 设置为 GROUP_CHAT 时为必需,并且至少需要两个成员。

Space.spaceType 设置为 DIRECT_MESSAGE 并添加人员用户时为必需,并且只能添加一个成员。

在人员和调用 Chat 应用之间创建 1 对 1 对话时(将 Space.spaceType 设置为 DIRECT_MESSAGE 并将 Space.singleUserBotDm 设置为 true 时),必须为空。

响应正文

如果成功,则响应正文包含一个 Space 实例。

授权范围

需要以下 OAuth 范围之一:

  • https://www.googleapis.com/auth/chat.spaces
  • https://www.googleapis.com/auth/chat.spaces.create

如需了解详情,请参阅授权指南