通过高级聊天服务,您可以在 Apps 脚本中使用 Google Chat API。此 API 允许脚本查找、创建和修改 Chat 聊天室、向聊天室添加或移除成员,以及阅读或发布包含文字、卡片、附件和回应的消息。
前提条件
- 在 Google Cloud 控制台的 Chat API 配置页面中配置的 Apps 脚本 Google Chat 应用。应用的 Apps 脚本项目必须使用标准的 Google Cloud 项目,而不是为 Apps 脚本项目自动创建的默认项目。如需创建兼容的 Google Chat 应用,请参阅使用 Google Apps 脚本构建 Google Chat 应用。
- 为 Chat 应用配置的身份验证。代表用户执行操作需要进行用户身份验证。以 Chat 应用的身份执行操作需要使用服务账号进行应用身份验证。如需查看 Chat API 方法支持哪种形式的身份验证,请参阅 Google Chat API 调用的必需身份验证类型。
参考
如需详细了解此服务,请参阅 Chat API 参考文档。与 Apps 脚本中的所有高级服务一样,Chat 服务使用的对象、方法和参数均与公共 API 相同。
示例代码
这些示例展示了如何使用高级服务执行常见的 Google Chat API 操作。
使用用户凭据发布消息
以下示例演示了如何代表用户向 Chat 群组发布消息。
将
chat.messages.create
授权范围添加到 Apps 脚本项目的appsscript.json
文件中:"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.create" ]
将如下函数添加到 Apps 脚本项目的代码中:
发布带有应用凭据的消息
以下示例演示了如何代表应用向 Chat 群组发布消息。使用具有服务账号的高级 Chat 服务时,您无需在 appsscript.json
中指定授权范围。如需详细了解如何使用服务账号进行身份验证,请参阅以 Google Chat 应用的身份进行身份验证。
创建聊天室
以下示例演示了如何获取有关聊天空间的信息。
将
chat.spaces.readonly
授权范围添加到 Apps 脚本项目的appsscript.json
文件中:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.readonly" ]
将如下函数添加到 Apps 脚本项目的代码中:
创建聊天室
以下示例演示了如何创建 Chat 聊天室。
将
chat.spaces.create
授权范围添加到 Apps 脚本项目的appsscript.json
文件中:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]
将如下函数添加到 Apps 脚本项目的代码中:
列出会员资格
以下示例演示了如何列出 Chat 室的所有成员。
将
chat.memberships.readonly
授权范围添加到 Apps 脚本项目的appsscript.json
文件中:"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships.readonly" ]
将如下函数添加到 Apps 脚本项目的代码中:
问题排查
如果您遇到 Error 400: invalid_scope
错误,并显示 Some requested scopes cannot be shown
错误消息,则表示您未在 Apps 脚本项目的 appsscript.json
文件中指定任何授权范围。在大多数情况下,Apps 脚本会自动确定脚本所需的范围,但当您使用 Chat 高级服务时,必须手动将脚本使用的授权范围添加到 Apps 脚本项目的清单文件中。请参阅设置明确的范围。
如需解决此错误,请将相应的授权范围添加到 Apps 脚本项目的 appsscript.json
文件中,作为 oauthScopes
数组的一部分。例如,如需调用 spaces.messages.create
方法,请添加以下内容:
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
限制和注意事项
高级聊天服务不支持以下功能:
- Chat API 方法
media.download
。 - 开发者预览版中提供的 Chat API 方法
如需下载消息附件或调用开发者预览版方法,请改用 UrlFetchApp
。