Làm việc với người tham gia

Hướng dẫn này giải thích cách lấy thông tin chi tiết về những người tham gia đã tham dự một hội nghị truyền hình trước đây hoặc đang tham gia một hội nghị truyền hình đang diễn ra, cùng với thông tin về phiên của họ, bằng cách sử dụng Google Meet REST API.

Người tham gia là người đã tham gia cuộc gọi hoặc sử dụng Chế độ đồng hành, xem với tư cách là người xem hoặc là một thiết bị phòng họp được kết nối với cuộc gọi. Mỗi người có một participants tài nguyên.

Phiên của người tham gia là một mã phiên duy nhất được tạo cho mỗi cặp người tham gia – thiết bị tham gia cuộc gọi. Mỗi phiên có một tài nguyên participantSessions. Nếu người tham gia tham gia cùng một cuộc gọi nhiều lần từ cùng một cặp người tham gia – thiết bị, thì mỗi lần tham gia sẽ được chỉ định một mã phiên duy nhất.

Nếu là chủ sở hữu hoặc người tham gia không gian họp, bạn có thể gọi các phương thức get()list() trên cả tài nguyên participantsparticipantSessions để truy xuất bản ghi của người tham gia.

Việc xác thực và uỷ quyền bằng thông tin đăng nhập của người dùng cho phép các ứng dụng Google Meet truy cập vào dữ liệu người dùng và thực hiện các thao tác thay mặt cho người dùng đã xác thực. Xác thực bằng tính năng uỷ quyền trên toàn miền cho phép bạn uỷ quyền cho tài khoản dịch vụ của một ứng dụng truy cập vào dữ liệu của người dùng mà không yêu cầu mỗi người dùng phải đồng ý.

Người tham gia

Các phần sau đây trình bày chi tiết cách lấy thông tin về người tham gia trong bản ghi hội nghị.

Các liên kết tài nguyên participants với trường user. user chỉ có thể là một trong những đối tượng sau:

  • signedinUser có thể là:

    • Một cá nhân tham gia bằng máy tính cá nhân, thiết bị di động hoặc thông qua Chế độ đồng hành.

    • Một tài khoản rô bốt được các thiết bị trong phòng hội nghị truyền hình sử dụng.

  • anonymousUser là người dùng chưa xác định và chưa đăng nhập vào Tài khoản Google.

  • phoneUser là người dùng gọi điện từ điện thoại mà danh tính của người dùng không xác định được vì họ chưa đăng nhập bằng Tài khoản Google.

Xin lưu ý rằng mặc dù cả 3 đối tượng đều trả về một displayName, nhưng signedinUser cũng trả về một mã nhận dạng user duy nhất có thể tương tác với Admin SDK API và People API. Định dạng: users/{user}. Để biết thêm thông tin về cách sử dụng mã nhận dạng user với People API, hãy xem bài viết Truy xuất thông tin chi tiết về người tham gia bằng People API.

Xem thông tin chi tiết về người tham gia

Để biết thông tin chi tiết về một người tham gia cụ thể, hãy sử dụng phương thức get() trên tài nguyên participants bằng tham số đường dẫn name. Nếu không biết tên người tham gia, bạn có thể liệt kê tất cả tên người tham gia bằng phương thức list().

Phương thức này trả về dữ liệu người tham gia dưới dạng một thực thể của tài nguyên participants.

Mẫu mã sau đây cho biết cách truy xuất một người tham gia cụ thể:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/getparticipant/AsyncGetParticipant.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.GetParticipantRequest;
import com.google.apps.meet.v2.Participant;
import com.google.apps.meet.v2.ParticipantName;

public class AsyncGetParticipant {

  public static void main(String[] args) throws Exception {
    asyncGetParticipant();
  }

  public static void asyncGetParticipant() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      GetParticipantRequest request =
          GetParticipantRequest.newBuilder()
              .setName(ParticipantName.of("[CONFERENCE_RECORD]", "[PARTICIPANT]").toString())
              .build();
      ApiFuture<Participant> future =
          conferenceRecordsServiceClient.getParticipantCallable().futureCall(request);
      // Do something.
      Participant response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.get_participant.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Resource name of the participant.
 */
// const name = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callGetParticipant() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await meetClient.getParticipant(request);
  console.log(response);
}

callGetParticipant();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_get_participant_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_get_participant():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.GetParticipantRequest(
        name="name_value",
    )

    # Make the request
    response = await client.get_participant(request=request)

    # Handle the response
    print(response)

Thay thế tên người tham gia bằng tên của mã nhận dạng người tham gia cụ thể trong bản ghi hội nghị.

Liệt kê tất cả người tham gia

Để liệt kê thông tin chi tiết về tất cả người tham gia trong một bản ghi hội nghị, hãy sử dụng phương thức list() trên tài nguyên participants bằng tham số đường dẫn parent. Định dạng: conferenceRecords/{conferenceRecord}.

Phương thức này trả về danh sách những người tham gia hội nghị, được sắp xếp theo earliestStartTime theo thứ tự giảm dần, dưới dạng một thực thể của tài nguyên participants. Để điều chỉnh kích thước trang và lọc kết quả truy vấn, hãy xem phần Tuỳ chỉnh phân trang hoặc lọc danh sách người tham gia.

Mẫu mã sau đây cho biết cách liệt kê tất cả người tham gia trong một bản ghi hội nghị:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/listparticipants/AsyncListParticipants.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordName;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.ListParticipantsRequest;
import com.google.apps.meet.v2.Participant;

public class AsyncListParticipants {

  public static void main(String[] args) throws Exception {
    asyncListParticipants();
  }

  public static void asyncListParticipants() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      ListParticipantsRequest request =
          ListParticipantsRequest.newBuilder()
              .setParent(ConferenceRecordName.of("[CONFERENCE_RECORD]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .setFilter("filter-1274492040")
              .build();
      ApiFuture<Participant> future =
          conferenceRecordsServiceClient.listParticipantsPagedCallable().futureCall(request);
      // Do something.
      for (Participant element : future.get().iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.list_participants.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Format: `conferenceRecords/{conference_record}`
 */
// const parent = 'abc123'
/**
 *  Maximum number of participants to return. The service might return fewer
 *  than this value.
 *  If unspecified, at most 100 participants are returned.
 *  The maximum value is 250; values above 250 are coerced to 250.
 *  Maximum might change in the future.
 */
// const pageSize = 1234
/**
 *  Page token returned from previous List Call.
 */
// const pageToken = 'abc123'
/**
 *  Optional. User specified filtering condition in EBNF
 *  format (https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form).
 *  The following are the filterable fields:
 *  * `earliest_start_time`
 *  * `latest_end_time`
 *  For example, `latest_end_time IS NULL` returns active participants in
 *  the conference.
 */
// const filter = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callListParticipants() {
  // Construct request
  const request = {
    parent,
  };

  // Run request
  const iterable = meetClient.listParticipantsAsync(request);
  for await (const response of iterable) {
      console.log(response);
  }
}

callListParticipants();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_list_participants_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_list_participants():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.ListParticipantsRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_participants(request=request)

    # Handle the response
    async for response in page_result:
        print(response)

Thay thế giá trị mẹ bằng tên của bản ghi hội nghị.

Tuỳ chỉnh việc phân trang hoặc lọc danh sách người tham gia

Truyền các tham số truy vấn sau để tuỳ chỉnh việc phân trang hoặc lọc người tham gia:

  • pageSize: Số lượng người tham gia tối đa cần trả về. Dịch vụ có thể trả về ít hơn giá trị này. Nếu bạn không chỉ định, hệ thống sẽ trả về tối đa 100 người tham gia. Giá trị tối đa là 250; các giá trị lớn hơn 250 sẽ tự động thay đổi thành 250.

  • pageToken: Mã thông báo trang, nhận được từ một lệnh gọi danh sách trước đó. Cung cấp mã thông báo này để truy xuất trang tiếp theo.

  • filter: Không bắt buộc. Một bộ lọc truy vấn để truy xuất các mục cụ thể trong kết quả tài nguyên participants.

    Bạn có thể sử dụng trường earliestStartTime hoặc latestEndTime để lọc những người dùng đã tham gia trước hoặc rời đi sau một thời gian nhất định. Cả hai trường đều sử dụng định dạng Dấu thời gian theo định dạng "Zulu" RFC 3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số thập phân: {year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z. Ví dụ:

    • earliestStartTime < 2023-10-01T15:01:23Z
    • latestEndTime < 2023-10-01T15:01:23Z

    Để liệt kê tất cả những người tham gia đang hoạt động trong một hội nghị hiện có, hãy sử dụng latestEndTime IS NULL.

Truy xuất thông tin chi tiết về người tham gia bằng People API

Để truy xuất thông tin chi tiết về một người tham gia, hãy sử dụng phương thức get() trên tài nguyên people trong People API.

  1. Trích xuất mã nhận dạng của người dùng từ tài nguyên participant bằng thành phần cuối cùng của đường dẫn. Ví dụ: nếu giá trị tài nguyên participantconferenceRecords/abc-123/participants/12345 thì mã nhận dạng cho People API là 12345.

  2. Bao gồm READ_SOURCE_TYPE_PROFILE, READ_SOURCE_TYPE_CONTACTREAD_SOURCE_TYPE_OTHER_CONTACT ReadSourceType. Điều này đảm bảo cả người dùng nội bộ của một tổ chức Google Workspace và người liên hệ bên ngoài đều có trong phản hồi.

Mẫu mã sau đây cho biết cách tìm kiếm cả hồ sơ tổ chức và danh bạ của một người:

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

Thay thế nội dung sau:

  • PERSON_ID: mã nhận dạng của người cần tìm.
  • ACCESS_TOKEN: mã thông báo truy cập cấp quyền truy cập vào nhiều API.

Phiên của người tham gia

Các phần sau đây trình bày chi tiết cách lấy thông tin về các phiên của người tham gia trong bản ghi hội nghị.

Xem thông tin chi tiết về phiên của người tham gia

Để biết thông tin chi tiết về một phiên của người tham gia cụ thể, hãy sử dụng phương thức get() trên tài nguyên participantSessions bằng tham số đường dẫn name. Nếu không biết tên phiên của người tham gia, bạn có thể liệt kê tất cả các phiên của người tham gia bằng phương thức list().

Phương thức này trả về tên người tham gia dưới dạng một thực thể của tài nguyên participantSessions.

Mẫu mã sau đây cho thấy cách truy xuất một phiên cụ thể của người tham gia:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/getparticipantsession/AsyncGetParticipantSession.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.GetParticipantSessionRequest;
import com.google.apps.meet.v2.ParticipantSession;
import com.google.apps.meet.v2.ParticipantSessionName;

public class AsyncGetParticipantSession {

  public static void main(String[] args) throws Exception {
    asyncGetParticipantSession();
  }

  public static void asyncGetParticipantSession() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      GetParticipantSessionRequest request =
          GetParticipantSessionRequest.newBuilder()
              .setName(
                  ParticipantSessionName.of(
                          "[CONFERENCE_RECORD]", "[PARTICIPANT]", "[PARTICIPANT_SESSION]")
                      .toString())
              .build();
      ApiFuture<ParticipantSession> future =
          conferenceRecordsServiceClient.getParticipantSessionCallable().futureCall(request);
      // Do something.
      ParticipantSession response = future.get();
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.get_participant_session.js
/**
 * This snippet has been automatically generated and should be regarded as a code template only.
 * It will require modifications to work.
 * It may require correct/in-range values for request initialization.
 * TODO(developer): Uncomment these variables before running the sample.
 */
/**
 *  Required. Resource name of the participant.
 */
// const name = 'abc123'

// Imports the Meet library
const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

// Instantiates a client
const meetClient = new ConferenceRecordsServiceClient();

async function callGetParticipantSession() {
  // Construct request
  const request = {
    name,
  };

  // Run request
  const response = await meetClient.getParticipantSession(request);
  console.log(response);
}

callGetParticipantSession();

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_get_participant_session_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_get_participant_session():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.GetParticipantSessionRequest(
        name="name_value",
    )

    # Make the request
    response = await client.get_participant_session(request=request)

    # Handle the response
    print(response)

Thay thế tên người tham gia bằng tên của mã nhận dạng phiên cụ thể của người tham gia trong một phiên của người tham gia.

Liệt kê tất cả các phiên của người tham gia

Để liệt kê thông tin chi tiết về tất cả các phiên của người tham gia trong bản ghi hội nghị, hãy sử dụng phương thức list() trên tài nguyên participantSessions bằng tham số đường dẫn parent. Định dạng: conferenceRecords/{conferenceRecord}/participants/{participant}.

Phương thức này trả về một danh sách các phiên của người tham gia, được sắp xếp theo startTime theo thứ tự giảm dần, dưới dạng một thực thể của tài nguyên participantSession. Để điều chỉnh kích thước trang và lọc kết quả truy vấn, hãy xem phần Tuỳ chỉnh phân trang hoặc lọc danh sách phiên của người tham gia.

Mẫu mã sau đây cho biết cách liệt kê tất cả các phiên của người tham gia trong một bản ghi hội nghị:

Java

java-meet/samples/snippets/generated/com/google/apps/meet/v2/conferencerecordsservice/listparticipantsessions/AsyncListParticipantSessions.java
import com.google.api.core.ApiFuture;
import com.google.apps.meet.v2.ConferenceRecordsServiceClient;
import com.google.apps.meet.v2.ListParticipantSessionsRequest;
import com.google.apps.meet.v2.ParticipantName;
import com.google.apps.meet.v2.ParticipantSession;

public class AsyncListParticipantSessions {

  public static void main(String[] args) throws Exception {
    asyncListParticipantSessions();
  }

  public static void asyncListParticipantSessions() throws Exception {
    // This snippet has been automatically generated and should be regarded as a code template only.
    // It will require modifications to work:
    // - It may require correct/in-range values for request initialization.
    // - It may require specifying regional endpoints when creating the service client as shown in
    // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
    try (ConferenceRecordsServiceClient conferenceRecordsServiceClient =
        ConferenceRecordsServiceClient.create()) {
      ListParticipantSessionsRequest request =
          ListParticipantSessionsRequest.newBuilder()
              .setParent(ParticipantName.of("[CONFERENCE_RECORD]", "[PARTICIPANT]").toString())
              .setPageSize(883849137)
              .setPageToken("pageToken873572522")
              .setFilter("filter-1274492040")
              .build();
      ApiFuture<ParticipantSession> future =
          conferenceRecordsServiceClient.listParticipantSessionsPagedCallable().futureCall(request);
      // Do something.
      for (ParticipantSession element : future.get().iterateAll()) {
        // doThingsWith(element);
      }
    }
  }
}

Node.js

packages/google-apps-meet/samples/generated/v2/conference_records_service.list_participant_sessions.js
// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// ** This file is automatically generated by gapic-generator-typescript. **
// ** https://github.com/googleapis/gapic-generator-typescript **
// ** All changes to this file may be overwritten. **



'use strict';

function main(parent) {
  /**
   * This snippet has been automatically generated and should be regarded as a code template only.
   * It will require modifications to work.
   * It may require correct/in-range values for request initialization.
   * TODO(developer): Uncomment these variables before running the sample.
   */
  /**
   *  Required. Format:
   *  `conferenceRecords/{conference_record}/participants/{participant}`
   */
  // const parent = 'abc123'
  /**
   *  Optional. Maximum number of participant sessions to return. The service
   *  might return fewer than this value. If unspecified, at most 100
   *  participants are returned. The maximum value is 250; values above 250 are
   *  coerced to 250. Maximum might change in the future.
   */
  // const pageSize = 1234
  /**
   *  Optional. Page token returned from previous List Call.
   */
  // const pageToken = 'abc123'
  /**
   *  Optional. User specified filtering condition in EBNF
   *  format (https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form).
   *  The following are the filterable fields:
   *  * `start_time`
   *  * `end_time`
   *  For example, `end_time IS NULL` returns active participant sessions in
   *  the conference record.
   */
  // const filter = 'abc123'

  // Imports the Meet library
  const {ConferenceRecordsServiceClient} = require('@google-apps/meet').v2;

  // Instantiates a client
  const meetClient = new ConferenceRecordsServiceClient();

  async function callListParticipantSessions() {
    // Construct request
    const request = {
      parent,
    };

    // Run request
    const iterable = meetClient.listParticipantSessionsAsync(request);
    for await (const response of iterable) {
        console.log(response);
    }
  }

  callListParticipantSessions();
}

process.on('unhandledRejection', err => {
  console.error(err.message);
  process.exitCode = 1;
});
main(...process.argv.slice(2));

Python

packages/google-apps-meet/samples/generated_samples/meet_v2_generated_conference_records_service_list_participant_sessions_async.py
# This snippet has been automatically generated and should be regarded as a
# code template only.
# It will require modifications to work:
# - It may require correct/in-range values for request initialization.
# - It may require specifying regional endpoints when creating the service
#   client as shown in:
#   https://googleapis.dev/python/google-api-core/latest/client_options.html
from google.apps import meet_v2


async def sample_list_participant_sessions():
    # Create a client
    client = meet_v2.ConferenceRecordsServiceAsyncClient()

    # Initialize request argument(s)
    request = meet_v2.ListParticipantSessionsRequest(
        parent="parent_value",
    )

    # Make the request
    page_result = client.list_participant_sessions(request=request)

    # Handle the response
    async for response in page_result:
        print(response)

Thay thế giá trị mẹ bằng tên của các phiên tham gia của một người tham gia trong bản ghi hội nghị.

Tuỳ chỉnh việc phân trang hoặc lọc danh sách phiên của người tham gia

Truyền các tham số truy vấn không bắt buộc sau đây để tuỳ chỉnh việc phân trang hoặc lọc các phiên của người tham gia:

  • pageSize: Số lượng phiên tối đa của người tham gia cần trả về. Dịch vụ có thể trả về ít hơn giá trị này. Nếu không được chỉ định, tối đa 100 phiên của người tham gia sẽ được trả về. Giá trị tối đa là 250; các giá trị lớn hơn 250 sẽ tự động thay đổi thành 250.

  • pageToken: Mã thông báo trang, nhận được từ một lệnh gọi danh sách trước đó. Cung cấp mã thông báo này để truy xuất trang tiếp theo.

  • filter: Không bắt buộc. Một bộ lọc truy vấn để truy xuất các mục cụ thể trong kết quả tài nguyên participants.

    Bạn có thể sử dụng các trường startTime hoặc endTime để lọc những người dùng đã tham gia trước hoặc rời đi sau một thời gian nhất định. Cả hai trường đều sử dụng định dạng Dấu thời gian theo định dạng "Zulu" RFC 3339 UTC, với độ phân giải nano giây và tối đa 9 chữ số thập phân: {year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z. Ví dụ:

    • startTime < 2023-10-01T15:01:23Z
    • endTime < 2023-10-01T15:01:23Z

    Để liệt kê tất cả các phiên hoạt động của người tham gia trong bản ghi hội nghị, hãy sử dụng endTime IS NULL.