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