本指南介绍了如何使用 Google Chat API 的 Message
资源中的 update()
方法更新聊天室中的文本或卡片消息。更新消息以更改消息属性,例如消息内容或卡片内容。您还可以将文本消息添加到卡片消息之前,或将卡片添加到文本消息之后。
在 Chat API 中,聊天消息由 Message
资源表示。虽然 Chat 用户只能发送包含文字的消息,但 Chat 扩展应用可以使用许多其他消息传递功能,包括显示静态或交互式界面、从用户那里收集信息以及私密地传递消息。如需详细了解 Chat API 提供的消息传递功能,请参阅 Google Chat 消息概览。
前提条件
Node.js
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用并配置 Google Chat API,为您的 Chat 应用指定名称、图标和说明。
- 安装 Node.js Cloud 客户端库。
- 根据您希望在 Google Chat API 请求中进行身份验证的方式,创建访问凭据:
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
credentials.json
的 JSON 文件,保存到本地目录。 - 如需以 Chat 应用的身份进行身份验证,请创建服务账号凭据,并将该凭据保存为名为
credentials.json
的 JSON 文件。
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
- 选择授权范围,具体取决于您是想以用户身份还是以 Chat 应用身份进行身份验证。
Python
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用并配置 Google Chat API,为您的 Chat 应用指定名称、图标和说明。
- 安装 Python Cloud 客户端库。
- 根据您希望在 Google Chat API 请求中进行身份验证的方式,创建访问凭据:
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
credentials.json
的 JSON 文件,保存到本地目录。 - 如需以 Chat 应用的身份进行身份验证,请创建服务账号凭据,并将该凭据保存为名为
credentials.json
的 JSON 文件。
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
- 选择授权范围,具体取决于您是想以用户身份还是以 Chat 应用身份进行身份验证。
Java
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用并配置 Google Chat API,为您的 Chat 应用指定名称、图标和说明。
- 安装 Java Cloud 客户端库。
- 根据您希望在 Google Chat API 请求中进行身份验证的方式,创建访问凭据:
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
credentials.json
的 JSON 文件,保存到本地目录。 - 如需以 Chat 应用的身份进行身份验证,请创建服务账号凭据,并将该凭据保存为名为
credentials.json
的 JSON 文件。
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
- 选择授权范围,具体取决于您是想以用户身份还是以 Chat 应用身份进行身份验证。
Apps 脚本
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用并配置 Google Chat API,为您的 Chat 应用指定名称、图标和说明。
- 创建独立的 Apps 脚本项目,然后启用高级聊天服务。
- 在本指南中,您必须使用用户身份验证或应用身份验证。如需以 Chat 应用身份进行身份验证,请创建服务账号凭据。如需了解具体步骤,请参阅以 Google Chat 应用的身份进行身份验证和授权。
- 选择授权范围,具体取决于您是想以用户身份还是以 Chat 应用身份进行身份验证。
代表用户更新消息
使用用户身份验证时,只能更新消息的文本。
如需使用用户身份验证更新消息,请在请求中传递以下内容:
- 指定
chat.messages
授权范围。 - 调用
UpdateMessage()
方法。 - 将
message
作为Message
的实例传递,并包含以下内容:- 设置为要更新的消息的
name
字段,包括空间 ID 和消息 ID。 - 使用新文本设置的
text
字段。
- 设置为要更新的消息的
- 传递值为
text
的updateMask
。
如果更新后的消息是卡片消息,则文本会添加到卡片(仍会显示)的前面。
下面介绍了如何更新消息,或使用用户身份验证将文本消息添加到卡片消息前面:
Node.js
Python
Java
Apps 脚本
如需运行此示例,请替换以下内容:
SPACE_NAME
:来自空间的name
的 ID。 您可以通过调用ListSpaces()
方法或从空间的网址中获取 ID。MESSAGE_NAME
:消息的name
中的 ID。 您可以通过以下方式获取 ID:使用 Chat API 异步创建消息后返回的响应正文,或者创建消息时分配给消息的自定义名称。
Chat API 会返回一个 Message
实例,其中详细说明了更新的消息。
以 Chat 应用的身份更新消息
借助应用身份验证,消息的文本和卡片都可以更新。
如需使用应用身份验证更新消息,请在请求中传递以下内容:
- 指定
chat.bot
授权范围。 - 调用
UpdateMessage()
方法。 - 将
message
作为Message
的实例传递,并包含以下内容:- 设置为要更新的消息的
name
字段,包括空间 ID 和消息 ID。 - 如果需要更新,则将
text
字段设置为新文本。 - 如果需要更新,则使用新卡片设置
cardsV2
字段。
- 设置为要更新的消息的
- 传递
updateMask
并附上要更新的字段列表,例如text
和cardsV2
。
如果更新后的消息是卡片消息,并且文本已更新,则更新后的文本会添加到卡片(仍会显示)的前面。如果更新后的消息是短信,并且卡片已更新,则更新后的卡片会附加到文本(该文本会继续显示)。
下面介绍了如何使用应用身份验证更新消息的文本和卡片:
Node.js
Python
Java
Apps 脚本
如需运行此示例,请替换以下内容:
SPACE_NAME
:来自空间的name
的 ID。 您可以通过调用ListSpaces()
方法或从空间的网址中获取 ID。MESSAGE_NAME
:消息的name
中的 ID。 您可以通过以下方式获取 ID:使用 Chat API 异步创建消息后返回的响应正文,或者创建消息时分配给消息的自定义名称。
Chat API 会返回一个 Message
实例,其中详细说明了更新的消息。
相关主题
- 设置消息格式。
- 删除消息。
- 获取有关消息的详细信息。
- 列出聊天室中的消息。
- 发送消息。