通过高级聊天服务,您可以在 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
。