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 扩展应用可以发送私信。如果您的 Chat 应用通过用户身份验证来发送消息,相应消息就不能设为私密消息,并且必须省略此字段。

有关详情,请参阅向 Google Chat 用户发送私信

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)
  }
  // End of list of possible types for union field data.
}
字段
uri

string

此链接的 URI。

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

RichLinkType

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

枚举
DRIVE_FILE 一种 Google 云端硬盘富链接类型。

DriveLinkData

Google 云端硬盘关联数据。

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

object (DriveDataRef)

引用 Google 云端硬盘文件的 DriveDataRef

mimeType

string

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

会话

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 应用的消息。这只能在 CARD_CLICKED 事件(邮件发送者类型为 BOT)时使用。
UPDATE_USER_MESSAGE_CARDS 更新用户消息中的卡片。这只能作为对具有匹配网址的 MESSAGE 事件或 CARD_CLICKED 事件(邮件发件人类型为 HUMAN)的响应。文本会被忽略。
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

表示调用或提交 dialog 的请求的状态。

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

更新后的 widget 的响应。用于为 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。为响应用户操作而更新的 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

显示在邮件底部的一个或多个互动微件。有关详情,请参阅在邮件底部添加互动微件

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

更新消息。