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

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