本指南介绍了如何对 Google Chat API 的 SpaceEvent
资源使用 list
方法来列出聊天室中资源的更改。
SpaceEvent
资源
表示对目标空间(包括空间的子资源)的更改
例如消息、回应和会员资格如需详细了解支持的事件类型和事件载荷列表,请参阅 SpaceEvent
资源参考文档中的 eventType
和 payload
字段。
您最多可以在请求时间之前 28 天内列出事件。服务器
返回包含受影响资源最新版本的事件。
例如,如果您列出与新聊天室成员相关的活动,服务器会返回
Membership
项资源,包含最新的成员资格详细信息。如果是新的
成员在请求的期限内被删除,则事件有效负载包含
空 Membership
资源。
如需调用此方法,您必须使用用户身份验证。如需列出聊天室中的事件,已通过身份验证的用户必须是该聊天室的成员。
前提条件
Python
- Business 或 Enterprise 有权访问以下内容的 Google Workspace 账号: Google Chat。
- 设置环境:
- 创建 Google Cloud 项目。
- 配置 OAuth 同意屏幕。
- 启用并配置 Google Chat API,指定一个名称, 图标和说明。
- 为桌面应用
创建 OAuth 客户端 ID 凭据。如需运行本指南中的示例,请将凭据保存为名为
client_secrets.json
的 JSON 文件,并保存到本地目录。
- 选择支持用户身份验证的授权范围。
列出聊天室事件
如需列出 Chat 聊天室中的聊天室事件,请执行以下操作:
- 调用
list
方法 在SpaceEvent
资源。 - 使用
filter
字段。您必须至少指定一种事件类型,也可以按以下条件进行过滤 日期。如需查看支持的事件类型的列表,请参阅eventType
字段。 - 使用用户身份验证时,请指定一个或多个授权范围,以支持请求中的每种事件类型。最佳实践是,选择最严格的范围,但仍允许应用正常运行。如需选择范围,请参阅身份验证和授权概览。
在以下代码示例中,您将列出与聊天室中的新成员资格和消息相关的事件。
Python
- 在您的工作目录中,创建一个名为
chat_space_event_list.py
的文件。 在
chat_space_event_list.py
中添加以下代码:"""Lists SpaceEvent resources from the Chat API.""" from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly", "https://www.googleapis.com/auth/chat.messages.readonly"] # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build( 'chat', 'v1', credentials=creds, ) # Use the service endpoint to call Chat API. result = chat.spaces().spaceEvents().list( # The space from which to list events. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. parent='spaces/SPACE', # A required filter. Filters and returns events about new memberships and messages filter='event_types:"google.workspace.chat.membership.v1.created" OR event_types:"google.workspace.chat.message.v1.created"' ).execute() # Prints details about the created space events. print(result)
在代码中进行以下替换:
SPACE
:聊天室名称,您可以通过 Chat API 中的spaces.list
方法或聊天室的网址获取该名称。
在您的工作目录中,构建并运行该示例:
python3 chat_space_event_list.py
Chat API 会返回与新会员和消息相关的 SpaceEvent
资源事件列表。
自定义分页
(可选)传递以下查询参数以自定义分页:
pageSize
:要返回的SpaceEvent
资源的数量上限。服务返回的订阅的数量可能小于此值。负值会返回INVALID_ARGUMENT
错误。pageToken
:从上一个列出聊天室事件调用收到的页面令牌。提供此令牌以检索后续页面。进行分页时,过滤条件值应与提供页面令牌的调用相一致。传递一个 不同的值可能会导致意外结果。