REST Resource: spaces.messages

资源:消息

Google Chat 聊天室中的消息。

JSON 表示法
{
  "name": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "lastUpdateTime": string,
  "deleteTime": string,
  "text": string,
  "formattedText": string,
  "cards": [
    {
      object (Card)
    }
  ],
  "cardsV2": [
    {
      object (CardWithId)
    }
  ],
  "annotations": [
    {
      object (Annotation)
    }
  ],
  "thread": {
    object (Thread)
  },
  "space": {
    object (Space)
  },
  "fallbackText": string,
  "actionResponse": {
    object (ActionResponse)
  },
  "argumentText": string,
  "slashCommand": {
    object (SlashCommand)
  },
  "attachment": [
    {
      object (Attachment)
    }
  ],
  "matchedUrl": {
    object (MatchedUrl)
  },
  "threadReply": boolean,
  "clientAssignedMessageId": string,
  "emojiReactionSummaries": [
    {
      object (EmojiReactionSummary)
    }
  ],
  "privateMessageViewer": {
    object (User)
  },
  "deletionMetadata": {
    object (DeletionMetadata)
  },
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  },
  "attachedGifs": [
    {
      object (AttachedGif)
    }
  ],
  "accessoryWidgets": [
    {
      object (AccessoryWidget)
    }
  ]
}
字段
name

string

标识符。消息的资源名称。

格式:spaces/{space}/messages/{message}

其中 {space} 是发布消息的聊天室的 ID,{message} 是系统为消息分配的 ID。例如 spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB

如果您在创建消息时设置了自定义 ID,则可以通过将 {message} 替换为 clientAssignedMessageId 字段中的值,使用此 ID 在请求中指定消息。例如 spaces/AAAAAAAAAAA/messages/client-custom-name。有关详情,请参阅为消息命名

sender

object (User)

仅限输出。消息的创建者。如果您的 Chat 应用以用户身份进行身份验证,输出将填充用户 nametype

createTime

string (Timestamp format)

可选。不可变。对于在 Chat 中创建的聊天室,则是消息创建的时间。此字段仅用于输出,但在导入模式聊天室中使用时除外。

对于导入模式聊天室,请将此字段设置为消息在来源中创建的历史时间戳,以保留原始创建时间。

lastUpdateTime

string (Timestamp format)

仅限输出。用户上次修改消息的时间。如果消息从未修改过,则此字段为空。

deleteTime

string (Timestamp format)

仅限输出。消息在 Google Chat 中被删除的时间。如果消息从未被删除,则此字段为空。

text

string

可选。邮件的纯文本正文。指向图片、视频或网页的第一个链接会生成预览条状标签。您还可以@提及 Google Chat 用户或聊天室中的所有人。

如需了解如何创建短信,请参阅发送消息

formattedText

string

仅限输出。包含消息 text,其中添加了用于传达格式的标记。此字段可能无法捕获界面中可见的所有格式设置,但包括以下内容:

  • 适用于粗体、斜体、删除线、等宽、等宽和项目符号列表的标记语法

  • 用户提及,使用 <users/{user}> 格式。

  • 采用 <{url}|{rendered_text}> 格式的自定义超链接,其中第一个字符串是网址,第二个字符串是呈现的文本,例如 <http://example.com|custom text>

  • 使用格式 :{emojiName}: 的自定义表情符号,例如 :smile:。这不适用于 Unicode 表情符号,例如表示笑脸的表情符号 U+1F600

有关详情,请参阅查看邮件中发送的文本格式

cards[]
(deprecated)

object (Card)

已弃用:请改用 cardsV2

富媒体、格式化且交互式的卡片,可用于显示界面元素,例如:格式化文本、按钮和可点击的图片。卡片通常显示在消息的纯文本正文下方。cardscardsV2 的大小上限为 32 KB。

cardsV2[]

object (CardWithId)

可选。卡片的数组。

只有 Chat 扩展应用可以创建卡片。如果您的 Chat 应用以用户的身份进行身份验证,则消息不得包含卡片。

如需了解如何创建包含卡片的消息,请参阅发送消息

使用卡片制作工具设计和预览卡片。

打开卡片制作工具

annotations[]

object (Annotation)

仅限输出。与此消息中的 text 关联的注解。

thread

object (Thread)

邮件所属的会话。如需查看用法示例,请参阅发起或回复消息串

space

object (Space)

仅限输出。如果您的 Chat 应用以用户身份进行身份验证,输出内容只会填充聊天室 name

fallbackText

string

可选。消息卡片的纯文本说明,用于在无法显示实际卡片时(例如移动通知)显示。

actionResponse

object (ActionResponse)

仅限输入。Chat 应用可以使用这些参数来配置其响应的发布方式。

argumentText

string

仅限输出。消息的纯文本正文,其中已移除所有 Chat 应用提及。

slashCommand

object (SlashCommand)

仅限输出。斜线命令信息(如果适用)。

attachment[]

object (Attachment)

可选。用户上传的附件。

matchedUrl

object (MatchedUrl)

仅限输出。spaces.messages.text 中与链接预览格式匹配的网址。如需了解详情,请参阅预览链接

threadReply

boolean

仅限输出。如果设为 true,则表示消息是回复会话中的回复。设为 false 后,消息将在聊天室的顶级对话中显示为消息串中的第一条消息或没有话题式回复的消息。

如果聊天室不支持在会话中回复,则此字段始终为 false

clientAssignedMessageId

string

可选。消息的自定义 ID。您可以使用此字段来标识消息,或获取、删除或更新消息。如需设置自定义 ID,请在创建消息时指定 messageId 字段。有关详情,请参阅为消息命名

emojiReactionSummaries[]

object (EmojiReactionSummary)

仅限输出。邮件上的表情符号回应摘要列表。

privateMessageViewer

object (User)

可选。不可变。用于创建消息的输入,否则仅输出。可以查看消息的用户。设置后,消息是不公开的,仅对指定用户和 Chat 应用可见。如需在请求中包含此字段,您必须使用应用身份验证调用 Chat API,并省略以下内容:

有关详情,请参阅私下发送消息

deletionMetadata

object (DeletionMetadata)

仅限输出。有关已删除消息的信息。设置 deleteTime 后,系统会删除消息。

quotedMessageMetadata

object (QuotedMessageMetadata)

仅限输出。与 Google Chat 用户在聊天室中引用的消息相关的信息。Google Chat 用户可以引用消息来回复消息。

attachedGifs[]

object (AttachedGif)

仅限输出。附加到邮件中的 GIF 图片。

accessoryWidgets[]

object (AccessoryWidget)

可选。显示在邮件底部的一个或多个互动微件。您可以为包含文本、卡片或文本和卡片的消息添加配件微件。不支持包含对话框的消息。有关详情,请参阅在邮件底部添加互动微件

若要创建包含配件 widget 的消息,您需要进行应用身份验证

CardWithId

Google Chat 消息中的卡片

只有 Chat 应用可以创建卡片。如果您的 Chat 应用以用户身份进行身份验证,则消息中不能包含卡片。

使用卡片制作工具设计和预览卡片。

打开卡片制作工具

JSON 表示法
{
  "cardId": string,
  "card": {
    object (Card)
  }
}
字段
cardId

string

如果消息包含多张卡片,则必须填写。消息中卡片的唯一标识符。

card

object (Card)

一张卡片。大小上限为 32 KB。

注释

仅限输出。与邮件纯文本正文相关的注释。如要为短信添加基本格式,请参阅设置短信格式

纯文本消息正文示例:

Hello @FooBot how are you!"

相应的注释元数据:

"annotations":[{
  "type":"USER_MENTION",
  "startIndex":6,
  "length":7,
  "userMention": {
    "user": {
      "name":"users/{user}",
      "displayName":"FooBot",
      "avatarUrl":"https://goo.gl/aeDtrS",
      "type":"BOT"
    },
    "type":"MENTION"
   }
}]
JSON 表示法
{
  "type": enum (AnnotationType),
  "length": integer,
  "startIndex": integer,

  // Union field metadata can be only one of the following:
  "userMention": {
    object (UserMentionMetadata)
  },
  "slashCommand": {
    object (SlashCommandMetadata)
  },
  "richLinkMetadata": {
    object (RichLinkMetadata)
  }
  // End of list of possible types for union field metadata.
}
字段
type

enum (AnnotationType)

此注释的类型。

length

integer

此注释对应的纯文本邮件正文中的子字符串的长度。

startIndex

integer

此注释对应的纯文本邮件正文中的起始索引(从 0 开始,含 0)。

联合字段 metadata。有关注释的其他元数据。metadata 只能是下列其中一项:
userMention

object (UserMentionMetadata)

用户提及的元数据。

slashCommand

object (SlashCommandMetadata)

斜杠命令的元数据。

AnnotationType

注释的类型。

枚举
ANNOTATION_TYPE_UNSPECIFIED 枚举的默认值。请勿使用。
USER_MENTION 提及了一位用户。
SLASH_COMMAND 系统会调用斜杠命令。

UserMentionMetadata

用户提及 (@) 的注释元数据。

JSON 表示法
{
  "user": {
    object (User)
  },
  "type": enum (Type)
}
字段
user

object (User)

被提及的用户。

type

enum (Type)

用户提及的类型。

类型

枚举
TYPE_UNSPECIFIED 枚举的默认值。请勿使用。
ADD 将用户添加到聊天室。
MENTION 在聊天室中提及用户。

SlashCommandMetadata

斜杠命令 (/) 的注释元数据。

JSON 表示法
{
  "bot": {
    object (User)
  },
  "type": enum (Type),
  "commandName": string,
  "commandId": string,
  "triggersDialog": boolean
}
字段
bot

object (User)

调用命令的 Chat 应用。

type

enum (Type)

斜杠命令的类型。

commandName

string

调用的斜杠命令的名称。

commandId

string (int64 format)

调用的斜杠命令的命令 ID。

triggersDialog

boolean

指示斜杠命令是否适用于对话框。

类型

枚举
TYPE_UNSPECIFIED 枚举的默认值。请勿使用。
ADD 将 Chat 应用添加到聊天室。
INVOKE 在空格中调用斜杠命令。

RichLinkMetadata

指向资源的丰富链接。

JSON 表示法
{
  "uri": string,
  "richLinkType": enum (RichLinkType),

  // Union field data can be only one of the following:
  "driveLinkData": {
    object (DriveLinkData)
  },
  "chatSpaceLinkData": {
    object (ChatSpaceLinkData)
  }
  // End of list of possible types for union field data.
}
字段
uri

string

此链接的 URI。

联合字段 data。关联资源的数据。data 只能是下列其中一项:

RichLinkType

富链接类型。未来可能会添加更多类型。

枚举
DRIVE_FILE 一种 Google 云端硬盘富链接类型。
CHAT_SPACE Chat 聊天室中的富媒体链接类型。例如,聊天室智能条状标签。

DriveLinkData

Google 云端硬盘链接的数据。

JSON 表示法
{
  "driveDataRef": {
    object (DriveDataRef)
  },
  "mimeType": string
}
字段
driveDataRef

object (DriveDataRef)

引用 Google 云端硬盘文件的 DriveDataRef

mimeType

string

关联的 Google 云端硬盘资源的 MIME 类型。

ChatSpaceLinkData

Chat 聊天室链接的数据。

JSON 表示法
{
  "space": string,
  "thread": string,
  "message": string
}
字段
space

string

关联的 Chat 聊天室资源的聊天室。

格式:spaces/{space}

thread

string

关联的 Chat 聊天室资源的消息串。

格式:spaces/{space}/threads/{thread}

message

string

关联的 Chat 聊天室资源的消息。

格式:spaces/{space}/messages/{message}

会话

Google Chat 聊天室中的会话串。如需查看用法示例,请参阅发起或回复消息串

如果您在创建消息时指定了会话,则可以设置 messageReplyOption 字段,以确定在找不到匹配的会话时会发生什么情况。

JSON 表示法
{
  "name": string,
  "threadKey": string
}
字段
name

string

标识符。线程的资源名称。

示例:spaces/{space}/threads/{thread}

threadKey

string

可选。用于创建或更新会话的输入。否则,仅为输出。线程的 ID。最多支持 4000 个字符。

此 ID 专属于设置此 ID 的 Chat 应用。例如,如果多个 Chat 应用使用相同的会话键创建消息,则这些消息会发布在不同的会话中。如需在某人或其他 Chat 应用创建的消息串中回复,请改为指定消息串 name 字段。

ActionResponse

Chat 应用可以使用这些参数来配置其响应的发布方式。

JSON 表示法
{
  "type": enum (ResponseType),
  "url": string,
  "dialogAction": {
    object (DialogAction)
  },
  "updatedWidget": {
    object (UpdatedWidget)
  }
}
字段
type

enum (ResponseType)

仅限输入。Chat 应用响应的类型。

url

string

仅限输入。供用户进行身份验证或配置的网址。(仅适用于 REQUEST_CONFIG 响应类型。)

dialogAction

object (DialogAction)

仅限输入。对与对话框相关的互动事件的响应。必须附带 ResponseType.Dialog

updatedWidget

object (UpdatedWidget)

仅限输入。更新后的 widget 的响应。

ResponseType

Chat 应用响应的类型。

枚举
TYPE_UNSPECIFIED 默认类型,以 NEW_MESSAGE 进行处理。
NEW_MESSAGE 在主题中发布新消息。
UPDATE_MESSAGE 更新 Chat 应用的消息。只有在消息发送方类型为 BOTCARD_CLICKED 事件中,才允许执行此操作。
UPDATE_USER_MESSAGE_CARDS 更新用户消息中的卡片。仅当响应包含匹配网址的 MESSAGE 事件或消息发件人类型为 HUMANCARD_CLICKED 事件时,才允许执行此操作。文本将被忽略。
REQUEST_CONFIG 私下要求用户进行额外的身份验证或配置。
DIALOG 显示对话框
UPDATE_WIDGET 微件文本自动补全选项查询。

DialogAction

包含对话框和请求状态代码。

JSON 表示法
{
  "actionStatus": {
    object (ActionStatus)
  },

  // Union field action can be only one of the following:
  "dialog": {
    object (Dialog)
  }
  // End of list of possible types for union field action.
}
字段
actionStatus

object (ActionStatus)

仅限输入。调用或提交 dialog 的请求的状态。视需要向用户显示状态和消息。例如,在出现错误或成功时返回。

联合字段 action。要执行的操作。action 只能是下列其中一项:
dialog

object (Dialog)

仅限输入。请求的对话框

对话框

对话框卡片正文周围的封装容器。

JSON 表示法
{
  "body": {
    object (Card)
  }
}
字段
body

object (Card)

仅限输入。以模态形式呈现的对话框的正文。Google Chat 应用不支持以下卡片实体:DateTimePickerOnChangeAction

ActionStatus

表示调用或提交对话框的请求的状态。

JSON 表示法
{
  "statusCode": enum (Code),
  "userFacingMessage": string
}
字段
statusCode

enum (Code)

状态代码。

userFacingMessage

string

用于向用户发送其请求状态的消息。如果未设置,系统会发送基于 statusCode 的通用消息。

代码

gRPC API 的规范错误代码。

有时可能有多个错误代码都适用。服务应返回适用且最具体的错误代码。例如,如果 OUT_OF_RANGEFAILED_PRECONDITION 两个代码都适用,则前者优先于后者。同样,NOT_FOUNDALREADY_EXISTS 优先于 FAILED_PRECONDITION

枚举
OK

不是错误信息;成功时返回此项。

HTTP 映射:200 OK

CANCELLED

操作已取消(通常是被调用者取消)。

HTTP 映射:499 Client Closed Request

UNKNOWN

未知错误。例如,当从另一个地址空间接收到的 Status 值属于此地址空间中未知的错误空间时,可能返回此错误。另外,因 API 没有返回足够错误信息而引发的错误也可能会转换为此错误。

HTTP 映射:500 Internal Server Error

INVALID_ARGUMENT

客户端指定的参数无效。请注意,这与 FAILED_PRECONDITION 不同。无论系统状态如何,INVALID_ARGUMENT 都会指出有问题的参数(例如文件名格式错误)。

HTTP 映射:400 Bad Request

DEADLINE_EXCEEDED

在操作完成之前截止期限已过。对于更改系统状态的操作,即使操作已成功完成,也可能会返回此错误。例如,服务器的成功响应可能会延迟足够长的时间以使截止期限过期。

HTTP 映射:504 Gateway Timeout

NOT_FOUND

找不到所请求的部分实体(例如,文件或目录)。

服务器开发者注意:如果要拒绝整个一类用户的请求(例如,功能逐步发布的用户或未正式加入许可名单的用户),则可以使用 NOT_FOUND。如果要拒绝某一类用户中部分用户的请求(例如,基于用户的访问权限控制),则必须使用 PERMISSION_DENIED

HTTP 映射:404 Not Found

ALREADY_EXISTS

客户端试图创建的实体(如文件或目录)已经存在。

HTTP 映射:409 Conflict

PERMISSION_DENIED

调用者无权执行指定的操作。如果遭拒的原因是由于部分资源已用尽,则不得使用 PERMISSION_DENIED(请改用 RESOURCE_EXHAUSTED 来表示此类错误)。如果调用者无法识别,则不得使用 PERMISSION_DENIED(请改用 UNAUTHENTICATED 来表示此类错误)。此错误代码并不意味着请求有效,或者请求的实体存在或满足其他先决条件。

HTTP 映射:403 Forbidden

UNAUTHENTICATED

请求没有相应操作的有效身份验证凭据。

HTTP 映射:401 Unauthorized

RESOURCE_EXHAUSTED

部分资源已用尽,可能是每用户配额不足,也可能是整个文件系统的存储空间已用完。

HTTP 映射:429 Too Many Requests

FAILED_PRECONDITION

操作被拒绝,因为系统未处于执行该操作所需的状态。例如,要删除的目录非空、将 rmdir 操作应用于非目录等等。

服务实施者可根据以下准则来确定是选择 FAILED_PRECONDITIONABORTED 还是 UNAVAILABLE:(a) 如果客户端只能重试失败的调用,则使用 UNAVAILABLE。(b) 如果客户端应在更高级层执行重试,则使用 ABORTED。例如当客户端指定的“测试并设置”操作失败时,这意味着客户端应重启“读取-修改-写入”序列。(c) 如果客户端不得在系统状态明确修正前执行重试,则使用 FAILED_PRECONDITION。例如,如果因非空目录而导致“rmdir”失败,应返回 FAILED_PRECONDITION,因为客户端只能在目录中的文件删除之后执行重试。

HTTP 映射:400 Bad Request

ABORTED

操作已中止,通常是由于序列程序检查失败或事务中止等并发问题。

请参阅上述准则以确定是选择 FAILED_PRECONDITIONABORTED 还是 UNAVAILABLE

HTTP 映射:409 Conflict

OUT_OF_RANGE

尝试执行的操作已超出有效范围。例如,查找或读取操作已超出文件末尾。

INVALID_ARGUMENT 不同,此错误指示的问题可以通过改变系统状态得到修复。例如,如果要求的读取操作偏移量不在 [0,2^32-1] 范围内,则 32 位文件系统将会生成 INVALID_ARGUMENT,但如果要求的读取操作偏移量超过当前文件大小,该系统则会生成 OUT_OF_RANGE

FAILED_PRECONDITIONOUT_OF_RANGE 之间有一定的共通之处。我们建议尽量使用 OUT_OF_RANGE(错误更具体一些),这样,循环访问空间的调用者就可以轻松查找 OUT_OF_RANGE 错误以检测完成情况。

HTTP 映射:400 Bad Request

UNIMPLEMENTED

操作在此服务中未实现或不受支持/未启用。

HTTP 映射:501 Not Implemented

INTERNAL

内部错误。这意味着底层系统所期望的一些不变量已损坏。此错误代码保留用于严重错误。

HTTP 映射:500 Internal Server Error

UNAVAILABLE

该服务目前不可用。这很可能是一种暂时情况,可以通过退避重试来纠正。 请注意,重试执行非幂等操作并非总是安全的。

请参阅上述准则以确定是选择 FAILED_PRECONDITIONABORTED 还是 UNAVAILABLE

HTTP 映射:503 Service Unavailable

DATA_LOSS

数据丢失或损坏且不可恢复。

HTTP 映射:500 Internal Server Error

UpdatedWidget

对于 selectionInput widget,返回多选菜单的自动补全建议。

JSON 表示法
{
  "widget": string,

  // Union field updated_widget can be only one of the following:
  "suggestions": {
    object (SelectionItems)
  }
  // End of list of possible types for union field updated_widget.
}
字段
widget

string

更新后的微件的 ID。该 ID 必须与触发更新请求的 widget 的 ID 一致。

联合字段 updated_widget。微件会根据用户操作进行更新。updated_widget 只能是下列其中一项:
suggestions

object (SelectionItems)

微件自动补全结果列表

SelectionItems

微件自动补全结果列表。

JSON 表示法
{
  "items": [
    {
      object (SelectionItem)
    }
  ]
}
字段
items[]

object (SelectionItem)

SelectionItem 对象的数组。

SlashCommand

Google Chat 中的斜线命令

JSON 表示法
{
  "commandId": string
}
字段
commandId

string (int64 format)

调用的斜杠命令的 ID。

MatchedUrl

Chat 消息中匹配的网址。聊天应用可以预览匹配的网址。如需了解详情,请参阅预览链接

JSON 表示法
{
  "url": string
}
字段
url

string

仅限输出。匹配的网址。

EmojiReactionSummary

回应了包含特定表情符号的消息的人数。

JSON 表示法
{
  "emoji": {
    object (Emoji)
  },
  "reactionCount": integer
}
字段
emoji

object (Emoji)

仅限输出。与回应关联的表情符号。

reactionCount

integer

仅限输出。使用关联表情符号的回应总数。

DeletionMetadata

有关已删除消息的信息。设置 deleteTime 后,系统会删除消息。

JSON 表示法
{
  "deletionType": enum (DeletionType)
}
字段
deletionType

enum (DeletionType)

表明谁删除了消息。

DeletionType

消息的删除者和删除方式。将来可能会添加更多值。

枚举
DELETION_TYPE_UNSPECIFIED 此值未使用。
CREATOR 用户删除了自己的消息。
SPACE_OWNER 聊天室所有者删除了消息。
ADMIN Google Workspace 管理员已删除该邮件。
APP_MESSAGE_EXPIRY Chat 应用在消息到期后删除了自己的消息。
CREATOR_VIA_APP Chat 应用代表用户删除了消息。
SPACE_OWNER_VIA_APP Chat 应用代表聊天室所有者删除了消息。

QuotedMessageMetadata

有关引用的邮件的信息。

JSON 表示法
{
  "name": string,
  "lastUpdateTime": string
}
字段
name

string

仅限输出。引用的消息的资源名称。

格式:spaces/{space}/messages/{message}

lastUpdateTime

string (Timestamp format)

仅限输出。引用消息的创建时间或上次更新时间。

AttachedGif

由网址指定的 GIF 图片。

JSON 表示法
{
  "uri": string
}
字段
uri

string

仅限输出。托管 GIF 图片的网址。

AccessoryWidget

显示在消息底部的一种或多种交互式 widget。如需了解详情,请参阅在消息底部添加互动式微件

JSON 表示法
{

  // Union field action can be only one of the following:
  "buttonList": {
    object (ButtonList)
  }
  // End of list of possible types for union field action.
}
字段
联合字段 action。操作的类型。action 只能是下列其中一项:
buttonList

object (ButtonList)

按钮列表。

方法

create

在 Google Chat 聊天室中创建消息。

delete

删除消息。

get

返回消息的详细信息。

list

列出调用方所属聊天室中的消息,包括来自已屏蔽成员和聊天室的消息。

patch

更新消息。

update

更新消息。