本指南介绍了如何对 Google Chat API 的 Message
资源使用 update()
方法来更新聊天室中的文本消息或卡片消息。更新消息可更改消息属性,例如消息内容或卡片内容。您还可以将短信附加到卡片消息之前,或将卡片附加到短信之后。
在 Chat API 中,Chat 消息由 Message
资源表示。虽然 Chat 用户只能发送包含文字的消息,但 Chat 应用可以使用许多其他消息传递功能,包括显示静态或交互式界面、从用户处收集信息以及以私密方式传送消息。如需详细了解 Chat API 提供的消息功能,请参阅 Google Chat 消息概览。
前提条件
Node.js
- 有权访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 为您的 Chat 应用启用和配置 Google Chat API,并为其指定一个名称、图标和说明。
- 安装 Node.js Cloud 客户端库。
- 根据您希望在 Google Chat API 请求中进行身份验证的方式创建访问凭据:
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据以 JSON 文件 (
client_secrets.json
) 的形式保存到本地目录。 - 如需以 Chat 应用的身份进行身份验证,请创建服务账号凭据,并将凭据保存为名为
credentials.json
的 JSON 文件。
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据以 JSON 文件 (
- 根据您是要以用户身份还是以 Chat 应用的身份进行身份验证, 选择授权范围。
Python
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 为您的 Chat 应用启用和配置 Google Chat API,并为其指定一个名称、图标和说明。
- 安装 Python Cloud 客户端库。
- 根据您希望在 Google Chat API 请求中进行身份验证的方式创建访问凭据:
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
client_secrets.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 凭据,并将凭据保存为名为
client_secrets.json
的 JSON 文件,保存到本地目录中。 - 如需以 Chat 应用的身份进行身份验证,请创建服务账号凭据并将凭据保存为名为
credentials.json
的 JSON 文件。
- 如需以 Chat 用户身份进行身份验证,请创建 OAuth 客户端 ID 凭据,并将凭据保存为名为
- 根据您是要以用户身份还是以 Chat 应用的身份进行身份验证, 选择授权范围。
Apps 脚本
- 拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 为您的 Chat 应用启用和配置 Google Chat API,并为其指定一个名称、图标和说明。
- 创建一个独立的 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。您可以从使用 Chat API 异步创建消息后返回的响应正文中获取 ID,也可以使用在创建消息时分配给消息的自定义名称来获取该 ID。
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
实例,其中详细说明了更新的消息。
相关主题
- 设置邮件格式。
- 删除消息。
- 获取有关消息的详细信息。
- 在聊天室中列出消息。
- 发送消息。