本指南介绍了如何使用 Google Meet REST API 获取有关参加过往届会议或正在参加当前会议的参与者的详细信息,以及他们的会话信息。
参与者是指加入通话或使用副屏模式的用户、以观众身份观看通话的用户,或连接到通话的会议室设备。每个人都有一个 participants
资源。
参与者会话是为加入通话的每个参与者-设备对创建的唯一会话 ID。
每个会话都有一个 participantSessions
资源。如果参与者通过同一参与者-设备对多次加入同一通话,系统会为每次加入分配唯一的会话 ID。
如果您是会议室所有者或参与者,可以对 participants
和 participantSessions
资源调用 get()
和 list()
方法,以检索参与者记录。
通过用户凭据进行身份验证和授权后,Google Meet 应用可以访问用户数据,并代表经过身份验证的用户执行操作。通过全网域授权进行身份验证后,您便可授权应用的某个服务账号访问您用户的数据,而无需经过每位用户的同意。
参与者
以下部分详细介绍了如何获取会议记录中参与者的相关信息。
participants
资源与 user
字段的并集。user
只能是以下对象之一:
signedinUser
可以是:通过个人计算机、移动设备或辅助模式加入会议的个人。
会议室设备使用的机器人账号。
anonymousUser
是指未登录 Google 账号的未识别用户。phoneUser
是通过电话拨号加入会议的用户,由于他们未登录 Google 账号,因此系统无法识别其身份。
请注意,虽然这三个对象都会返回 displayName
,但 signedinUser
还会返回一个唯一的 user
ID,该 ID 可与 Admin SDK API 和 People API 互操作。格式:users/{user}
。如需详细了解如何将 user
ID 与 People API 搭配使用,请参阅使用 People API 检索参与者详细信息。
获取有关参与者的详细信息
如需获取特定参与者的详细信息,请对 participants
资源使用 get()
方法,并提供 name
路径参数。如果您不知道参与者名称,可以使用 list()
方法列出所有参与者名称。
该方法会以 participants
资源实例的形式返回参与者数据。
以下代码示例展示了如何检索特定参与者:
Java
Node.js
Python
将参与者名称替换为会议记录中特定参与者 ID 的名称。
列出所有参与者
如需列出会议记录中所有参与者的详细信息,请对 participants
资源使用 list()
方法,并提供 parent
路径参数。格式:conferenceRecords/{conferenceRecord}
。
该方法会返回会议参与者列表,按 earliestStartTime
降序排列,作为 participants
资源的实例。如需调整页面大小和过滤查询结果,请参阅自定义分页或过滤参与者列表。
以下代码示例展示了如何列出会议记录中的所有参与者:
Java
Node.js
Python
将父值替换为会议记录的名称。
自定义分页或过滤参与者列表
传递以下查询参数可自定义参与者的分页或过滤条件:
pageSize
:要返回的参与者数量上限。服务返回的值可能小于此值。如果未指定,则最多返回 100 名参与者。最大值为 250;如果值超过 250,系统会自动将其更改为 250。pageToken
:从之前的列表调用接收的页面令牌。提供此令牌可检索后续页面。filter
:可选。用于检索participants
资源结果中特定项的查询过滤条件。您可以使用
earliestStartTime
或latestEndTime
字段来过滤在特定时间之前加入或之后离开的用户。这两个字段均采用 RFC 3339 UTC(即“祖鲁时”)格式的 Timestamp 格式,精确到纳秒,最多九个小数位:{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z
。例如:earliestStartTime < 2023-10-01T15:01:23Z
latestEndTime < 2023-10-01T15:01:23Z
如需列出现有会议中的所有活跃参与者,请使用
latestEndTime IS NULL
。
使用 People API 检索参与者详细信息
如需检索有关参与者的详细信息,请在 People API 的 people
资源上使用 get()
方法。
使用路径的尾随组件从
participant
资源中提取人员的 ID。例如,如果participant
资源值为conferenceRecords/abc-123/participants/12345
,则 People API 的 ID 为12345
。包含
READ_SOURCE_TYPE_PROFILE
、READ_SOURCE_TYPE_CONTACT
和READ_SOURCE_TYPE_OTHER_CONTACT
ReadSourceType
。这样可确保回复中包含 Google Workspace 组织的内部用户和外部联系人。
以下代码示例展示了如何同时搜索组织个人资料和联系人,以查找某个人:
cURL
curl \
'https://people.googleapis.com/v1/people/PERSON_ID?personFields=names%2CemailAddresses&sources=READ_SOURCE_TYPE_OTHER_CONTACT&sources=READ_SOURCE_TYPE_PROFILE&sources=READ_SOURCE_TYPE_CONTACT' \
--header 'Authorization: Bearer ACCESS_TOKEN' \
--header 'Accept: application/json' \
--compressed
替换以下内容:
- PERSON_ID:要查找的人员的 ID。
- ACCESS_TOKEN:授予对多个 API 的访问权限的访问令牌。
参与者会话
以下部分详细介绍了如何获取会议记录中参与者的参与者会话信息。
获取有关参与者会话的详细信息
如需获取特定参与者会话的详细信息,请对 participantSessions
资源使用 get()
方法,并提供 name
路径参数。如果您不知道参与者会话名称,可以使用 list()
方法列出参与者的所有参与者会话。
该方法会以 participantSessions
资源实例的形式返回参与者名称。
以下代码示例展示了如何检索特定参与者会话:
Java
Node.js
Python
将参与者名称替换为参与者会话中特定参与者会话 ID 的名称。
列出所有参与者会话
如需列出会议记录中某个参与者的所有参与者会话的详细信息,请对 participantSessions
资源使用 list()
方法,并提供 parent
路径参数。格式:conferenceRecords/{conferenceRecord}/participants/{participant}
。
该方法会返回一个参与者会话列表,按 startTime
降序排列,作为 participantSession
资源的实例。如需调整页面大小和过滤查询结果,请参阅自定义分页或过滤参与者会话列表。
以下代码示例展示了如何列出会议记录中的所有参与者会话:
Java
Node.js
Python
将父值替换为会议记录中某个参与者的参与者会话的名称。
自定义分页或过滤参与者会话列表
传递以下可选查询参数,以自定义参与者会话的分页或过滤:
pageSize
:要返回的参与者会话数上限。服务返回的值可能小于此值。如果未指定,则最多返回 100 个参与者会话。最大值为 250;大于 250 的值会自动更改为 250。pageToken
:从之前的列表调用接收的页面令牌。提供此令牌可检索后续页面。filter
:可选。用于检索participants
资源结果中特定项的查询过滤条件。您可以使用
startTime
或endTime
字段来过滤在特定时间之前加入或之后离开的用户。这两个字段均采用 RFC 3339 UTC(即“祖鲁时”)格式的 Timestamp 格式,精确到纳秒,最多九个小数位:{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z
。例如:startTime < 2023-10-01T15:01:23Z
endTime < 2023-10-01T15:01:23Z
如需列出会议记录中的所有活跃参与者会话,请使用
endTime IS NULL
。