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 lookup API 检索群组电子邮件地址 group@example.com 的 ID 123456789,然后将 membership.group_member.name 设为 groups/123456789,将该群组添加到聊天室。系统不支持群组电子邮件地址,且 Google 群组只能添加为已命名聊天室的成员。

对于已命名的聊天室或群聊,如果调用方屏蔽/被部分成员屏蔽,或无权添加部分成员,系统不会将这些成员添加到已创建的聊天室中。

如需在发起调用的用户和其他真人用户之间创建私信 (DM),请仅指定一个成员资格来代表真人用户。如果其中一位用户屏蔽了另一位用户,则请求会失败,系统将不会创建私信。

如需在发起调用的用户和发起通话的应用之间创建私信,请将 Space.singleUserBotDm 设置为 true,并且不要指定任何成员资格。您只能使用此方法为发起通话的应用设置私信。如要将发起通话的应用添加为聊天室成员或两位真人用户之间的现有私信,请参阅邀请用户/应用,或向聊天室添加用户/应用

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

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

要求进行用户身份验证

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

可选。此请求的唯一标识符。建议使用随机 UUID。指定现有请求 ID 会返回使用该 ID 创建的聊天室,而不是创建新的聊天室。如果通过其他经过身份验证的用户指定来自同一 Chat 应用的现有请求 ID,则系统会返回错误。

memberships[]

object (Membership)

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

除来电者外,此设置目前最多允许 20 个成员。

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

对于 Google 群组成员资格,Membership.group_member 字段必须包含填充了 namegroup(格式为 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

有关详情,请参阅授权指南