本指南介绍了如何使用 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
资源使用 name
路径参数的 get()
方法。如果您不知道参与者姓名,可以使用 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“Zulu”格式的时间戳格式,精确到纳秒且最多有 9 位小数:{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
资源使用 name
路径参数调用 get()
方法。如果您不知道参与者会话名称,可以使用 list()
方法列出参与者的所有参与者会话。
该方法会将参与者名称作为 participantSessions
资源的实例返回。
以下代码示例展示了如何检索特定的参与者会话:
Java
Node.js
Python
将参与者名称替换为参与者会话中的特定参与者会话 ID 的名称。
列出所有参与者会话
如需列出会议记录中某位参与者的所有参与者会话的详细信息,请对 participantSessions
资源使用 parent
路径参数的 list()
方法。格式:conferenceRecords/{conferenceRecord}/participants/{participant}
。
该方法会返回参与者会话列表,按 startTime
降序排序,并作为 participantSession
资源的实例返回。如需调整页面大小和过滤查询结果,请参阅自定义分页或过滤参与者会话列表。
以下代码示例展示了如何列出会议记录中的所有参与者会话:
Java
Node.js
Python
将父级值替换为会议记录中某位参与者的参与者会话的名称。
自定义分页或过滤参与者会话列表
传递以下可选查询参数可自定义参与者会话的分页或过滤条件:
pageSize
:要返回的参与者会话数上限。服务返回的值可能小于此值。如果未指定,则最多返回 100 个参与者会话。最大值为 250;超过 250 的值会自动更改为 250。pageToken
:从上一个列表调用收到的页面令牌。提供此令牌可检索后续页面。filter
:可选。用于在participants
资源结果中检索特定项的查询过滤条件。您可以使用
startTime
或endTime
字段过滤出在特定时间之前加入或之后离开的用户。这两个字段均采用 RFC 3339 UTC“Zulu”格式的时间戳格式,精确到纳秒且最多有 9 位小数:{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
。