本指南說明如何使用 Google Meet REST API,取得過去或目前會議的參與者詳細資料和工作階段資訊。
參與者是指加入通話、使用夥伴模式、以觀眾身分觀看通話,或是連線至通話的會議室裝置。每個人都有一個
participants
資源。
參與者工作階段是為加入通話的每組參與者裝置建立的專屬工作階段 ID。每個工作階段都有一個 participantSessions 資源。如果參與者從同一組參與者裝置多次加入同一通電話,系統會為每次加入指派專屬的工作階段 ID。
如果您是會議空間擁有者或參與者,可以對 participants 和 participantSessions 資源呼叫 get() 和 list() 方法,擷取參與者記錄。
使用使用者憑證進行驗證和授權後,Google Meet 應用程式就能存取使用者資料,並代表通過驗證的使用者執行作業。使用全網域委派進行驗證,即可授權應用程式的服務帳戶存取使用者資料,不必逐一取得使用者的同意。
參與者
以下各節詳細說明如何取得會議記錄中參與者的相關資訊。
participants
資源聯集與 user 欄位。user 只能是下列其中一個物件:
signedinUser可以是下列任一項:透過個人電腦、行動裝置或 Companion 模式加入會議的個人。
會議室裝置使用的機器人帳戶。
anonymousUser是指未登入 Google 帳戶的未識別使用者。phoneUser使用者透過電話撥入,但未登入 Google 帳戶,因此系統無法辨識身分。
請注意,雖然這三個物件都會傳回 displayName,但 signedinUser 也會傳回可與 Admin SDK API 和 People API 互通的專屬 user ID。格式:users/{user}。如要進一步瞭解如何搭配 People API 使用 user ID,請參閱「使用 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 世界標準時間「Zulu」格式的 Timestamp 格式,解析度達奈秒單位,最多可有九位小數:{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z。例如:earliestStartTime < 2023-10-01T15:01:23ZlatestEndTime < 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_CONTACTReadSourceType。確保回覆中包含 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 世界標準時間「Zulu」格式的 Timestamp 格式,解析度達奈秒單位,最多可有九位小數:{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z。例如:startTime < 2023-10-01T15:01:23ZendTime < 2023-10-01T15:01:23Z
如要列出會議記錄中的所有有效參與者工作階段,請使用
endTime IS NULL。