本指南說明如何使用 Google Meet REST API,取得曾參加過或正在參加會議的參與者詳細資料,以及他們的工作階段資訊。
參與者是指加入通話或使用夥伴模式的使用者,他們以觀看者的身份觀看通話,或是連線至通話的會議室裝置。每個人都有一個 participants
資源。
參與者工作階段是指針對每個加入通話的參與者裝置組合建立的專屬工作階段 ID。每個工作階段都有一個 participantSessions
資源。如果參與者透過相同的參與者-裝置組合多次加入同一個通話,系統會為每個參與者指派專屬的工作階段 ID。
如果您是會議空間擁有者或參與者,可以同時在 participants
和 participantSessions
資源上呼叫 get()
和 list()
方法,擷取參與者記錄。
使用使用者憑證驗證及授權,可讓 Google Meet 應用程式存取使用者資料,並代表已驗證的使用者執行作業。您可以使用全網域委派功能進行驗證,授權應用程式的服務帳戶存取使用者資料,無須逐一取得使用者的同意。
參與者
以下各節將詳細說明如何取得會議記錄中的參與者資訊。
participants
資源聯合與 user
欄位。user
只能是下列其中一個物件:
signedinUser
可以是:透過個人電腦、行動裝置或伴侶模式加入會議的參與者。
會議室裝置使用的自動程式帳戶。
anonymousUser
是未登入 Google 帳戶的不明使用者。phoneUser
是使用者透過電話撥入,但未使用 Google 帳戶登入,因此無法得知使用者身分的情況。
請注意,雖然所有三個物件都會傳回 displayName
,但 signedinUser
也會傳回可與 Admin SDK API 和 People API 互通的專屬 user
ID。格式:users/{user}
。如要進一步瞭解如何在 People API 中使用 user
ID,請參閱「使用 People API 擷取參與者詳細資料」一文。
取得參與者詳細資料
如要取得特定參與者的詳細資料,請在 participants
資源上使用 name
路徑參數的 get()
方法。如果您不知道參與者名稱,可以使用 list()
方法列出所有參與者名稱。
這個方法會將參與者資料傳回為 participants
資源的例項。
以下程式碼範例說明如何擷取特定參與者:
Java
Node.js
Python
在會議記錄中,將參與者名稱替換為特定參與者 ID 的名稱。
列出所有參與者
如要列出會議記錄中所有參與者的詳細資料,請在 participants
資源上使用 parent
路徑參數的 list()
方法。格式:conferenceRecords/{conferenceRecord}
。
這個方法會傳回會議參與者清單,並以 earliestStartTime
由高至低的順序排序,做為 participants
資源的例項。如要調整頁面大小並篩選查詢結果,請參閱「自訂分頁或篩選參與者名單」一文。
以下程式碼範例說明如何列出會議記錄中的所有參與者:
Java
Node.js
Python
將父項值替換為會議記錄的名稱。
自訂分頁或篩選參與者清單
傳遞下列查詢參數,即可自訂參與者的分頁或篩選:
pageSize
:要傳回的參與者人數上限。服務傳回的產品數量可能會少於這個值。如未指定,最多會傳回 100 位參與者。最大值為 250;超過 250 的值會自動變更為 250。pageToken
:從先前 list 呼叫收到的頁面權杖。提供這個符記即可擷取後續網頁。filter
:選用。查詢篩選器,用於擷取participants
資源結果中的特定項目。您可以使用
earliestStartTime
或latestEndTime
欄位,篩選在特定時間之前加入或之後離開的使用者。這兩個欄位都使用 RFC 3339 世界標準時間「Zulu」格式的時間戳記格式,解析度為奈秒,最多可顯示九個小數位:{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
資源上使用 parent
路徑參數,並使用 list()
方法。格式:conferenceRecords/{conferenceRecord}/participants/{participant}
。
這個方法會傳回參與者工作階段清單,並以 startTime
的降冪順序排序,做為 participantSession
資源的例項。如要調整頁面大小並篩選查詢結果,請參閱「自訂分頁或篩選參與者工作階段清單」一文。
以下程式碼範例說明如何在會議記錄中列出所有參與者的工作階段:
Java
Node.js
Python
將父項值替換為會議記錄中參與者參與者工作階段的名稱。
自訂分頁或篩選參與者工作階段清單
傳遞下列選用查詢參數,即可自訂參與者工作階段的分頁或篩選條件:
pageSize
:要傳回的參與者工作階段數量上限。服務傳回的產品數量可能會少於這個值。如未指定,最多會傳回 100 個參與者工作階段。最大值為 250;超過 250 的值會自動變更為 250。pageToken
:從先前 list 呼叫收到的頁面權杖。提供這個符記即可擷取後續網頁。filter
:選用。查詢篩選器,用於擷取participants
資源結果中的特定項目。您可以使用
startTime
或endTime
欄位,篩選出在特定時間之前加入,或在特定時間之後離開的使用者。這兩個欄位都使用 RFC 3339 世界標準時間「Zulu」格式的時間戳記格式,精確度為奈秒,最多可顯示九個小數位:{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
。