Praca z uczestnikami

Z tego przewodnika dowiesz się, jak za pomocą interfejsu Google Meet REST API uzyskać szczegółowe informacje o uczestnikach, którzy wzięli udział w zakończonej konferencji lub uczestniczą w aktywnej konferencji, a także informacje o ich sesjach.

Uczestnik to osoba, która dołączyła do połączenia lub korzysta z trybu towarzyszącego, ogląda spotkanie jako widz lub korzysta z urządzenia w sali połączonego z połączeniem. Każda osoba ma 1 participants zasób.

Sesja uczestnika to unikalny identyfikator sesji utworzony dla każdej pary uczestnik–urządzenie, która dołącza do połączenia. Każda sesja ma jeden zasób participantSessions. Jeśli uczestnik dołączy do tego samego połączenia kilka razy z tej samej pary uczestnik–urządzenie, każda sesja otrzyma unikalny identyfikator.

Jeśli jesteś właścicielem lub uczestnikiem przestrzeni spotkań, możesz wywoływać metody get() i list() na zasobach participants i participantSessions, aby pobierać rekordy uczestników.

Uwierzytelnianie i autoryzacja za pomocą danych logowania użytkownika umożliwiają aplikacjom Google Meet dostęp do danych użytkownika i wykonywanie operacji w imieniu uwierzytelnionego użytkownika. Uwierzytelnianie za pomocą przekazywania dostępu w całej domenie umożliwia autoryzowanie konta usługi aplikacji do uzyskiwania dostępu do danych użytkowników bez potrzeby pytania każdego użytkownika o zgodę.

Uczestnicy

W sekcjach poniżej znajdziesz szczegółowe informacje o tym, jak uzyskać informacje o uczestnikach nagrania konferencji.

Zasób participants łączy się z polem user. user może być tylko jednym z tych obiektów:

  • signedinUser może być:

    • osoba dołączająca z komputera osobistego, urządzenia mobilnego lub w trybie towarzyszącym;

    • Konto robota używane przez urządzenia do rozmów wideo w sali konferencyjnej.

  • anonymousUser to niezidentyfikowany użytkownik, który nie jest zalogowany na konto Google.

  • phoneUser to użytkownik, który dołącza do spotkania przez telefon, a jego tożsamość jest nieznana, ponieważ nie zalogował się na konto Google.

Pamiętaj, że wszystkie 3 obiekty zwracają displayName, ale signedinUser zwraca też unikalny identyfikator user, który jest interoperacyjny z interfejsem Admin SDK API i interfejsem People API. Format: users/{user}. Więcej informacji o używaniu identyfikatora user z interfejsem People API znajdziesz w artykule Pobieranie szczegółów uczestnika za pomocą interfejsu People API.

Sprawdzanie szczegółowych informacji o uczestniku

Aby uzyskać szczegółowe informacje o konkretnym uczestniku, użyj metody get() w zasobie participants z parametrem ścieżki name. Jeśli nie znasz nazwy uczestnika, możesz wyświetlić listę wszystkich nazw uczestników za pomocą metody list().

Metoda zwraca dane uczestnika jako instancję zasobu participants.

Poniższy przykładowy kod pokazuje, jak pobrać konkretnego uczestnika:

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)

Zastąp nazwę uczestnika nazwą konkretnego identyfikatora uczestnika w rekordzie konferencji.

Wyświetlanie listy wszystkich uczestników

Aby wyświetlić szczegóły wszystkich uczestników rekordu konferencji, użyj metody list() w zasobie participants z parametrem ścieżki parent. Format: conferenceRecords/{conferenceRecord}.

Metoda zwraca listę uczestników konferencji uporządkowaną według earliestStartTime w kolejności malejącej jako instancję zasobu participants. Aby dostosować rozmiar strony i filtrować wyniki zapytania, przeczytaj artykuł Dostosowywanie paginacji lub filtrowanie listy uczestników.

Poniższy przykładowy kod pokazuje, jak wyświetlić listę wszystkich uczestników nagrania konferencji:

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)

Zastąp wartość parent nazwą rekordu konferencji.

Dostosowywanie paginacji lub filtrowanie listy uczestników

Przekaż te parametry zapytania, aby dostosować paginację lub filtrowanie uczestników:

  • pageSize: maksymalna liczba uczestników do zwrócenia. Usługa może zwrócić mniej niż ta wartość. Jeśli nie określisz tu żadnej wartości, zostanie zwróconych maksymalnie 100 uczestników. Maksymalna wartość to 250. Wartości większe niż 250 są automatycznie zmieniane na 250.

  • pageToken: token strony otrzymany z poprzedniego wywołania listy. Podaj ten token, aby pobrać następną stronę.

  • filter: opcjonalne. Filtr zapytania, który umożliwia pobieranie konkretnych elementów w wynikach zasobu participants.

    W polach earliestStartTimelatestEndTime możesz filtrować użytkowników, którzy dołączyli przed określonym czasem lub opuścili grupę po określonym czasie. Oba pola używają formatu Timestamp w formacie RFC 3339 UTC „Zulu” z dokładnością do nanosekund i maksymalnie 9 cyframi po przecinku:{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z. Na przykład:

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

    Aby wyświetlić listę wszystkich aktywnych uczestników istniejącej konferencji, użyj latestEndTime IS NULL.

Pobieranie szczegółów uczestnika za pomocą interfejsu People API

Aby pobrać szczegółowe informacje o uczestniku, użyj metody get() w zasobie people w interfejsie People API.

  1. Wyodrębnij identyfikator osoby z zasobu participant, używając ostatniego komponentu ścieżki. Jeśli na przykład wartość participant zasobu to conferenceRecords/abc-123/participants/12345, identyfikator interfejsu People API to 12345.

  2. Uwzględnij READ_SOURCE_TYPE_PROFILE, READ_SOURCE_TYPE_CONTACTREAD_SOURCE_TYPE_OTHER_CONTACT ReadSourceType. Dzięki temu w odpowiedzi znajdą się zarówno użytkownicy wewnętrzni organizacji Google Workspace, jak i kontakty zewnętrzne.

Poniższy przykładowy kod pokazuje, jak wyszukiwać osobę w profilach organizacji i kontaktach:

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

Zastąp następujące elementy:

  • PERSON_ID: identyfikator osoby do znalezienia.
  • ACCESS_TOKEN: token dostępu, który umożliwia dostęp do wielu interfejsów API.

Sesje uczestników

W sekcjach poniżej znajdziesz szczegółowe informacje o tym, jak uzyskać informacje o sesjach uczestnika w rekordzie konferencji.

Wyświetlanie szczegółowych informacji o sesji uczestnika

Aby uzyskać szczegółowe informacje o sesji konkretnego uczestnika, użyj metody get() w zasobie participantSessions z parametrem ścieżki name. Jeśli nie znasz nazwy sesji uczestnika, możesz wyświetlić listę wszystkich sesji uczestnika za pomocą metody list().

Metoda zwraca nazwę uczestnika jako instancję zasobu participantSessions.

Poniższy przykładowy kod pokazuje, jak pobrać konkretną sesję uczestnika:

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)

Zastąp nazwę uczestnika identyfikatorem sesji konkretnego uczestnika.

Wyświetlanie listy wszystkich sesji uczestników

Aby wyświetlić szczegóły wszystkich sesji uczestnika w rekordzie konferencji, użyj metody list() w zasobie participantSessions z parametrem ścieżki parent. Format: conferenceRecords/{conferenceRecord}/participants/{participant}.

Metoda zwraca listę sesji uczestników uporządkowaną według startTime w kolejności malejącej jako instancję zasobu participantSession. Aby dostosować rozmiar strony i filtrować wyniki zapytania, przeczytaj artykuł Dostosowywanie paginacji lub filtrowanie listy sesji uczestników.

Poniższy przykładowy kod pokazuje, jak wyświetlić listę wszystkich sesji uczestników w rekordzie konferencji:

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)

Zastąp wartość nadrzędną nazwą sesji uczestnika w rekordzie konferencji.

Dostosowywanie paginacji lub filtrowanie listy sesji uczestników

Przekaż te opcjonalne parametry zapytania, aby dostosować paginację lub filtrowanie sesji uczestników:

  • pageSize: maksymalna liczba sesji uczestników do zwrócenia. Usługa może zwrócić wartość mniejszą niż ta. Jeśli nie podano tego argumentu, zwracanych jest maksymalnie 100 sesji uczestników. Maksymalna wartość to 250. Wartości większe niż 250 są automatycznie zmieniane na 250.

  • pageToken: token strony otrzymany z poprzedniego wywołania listy. Podaj ten token, aby pobrać następną stronę.

  • filter: opcjonalne. Filtr zapytania, który umożliwia pobieranie konkretnych elementów w wynikach zasobu participants.

    Pól startTimeendTime możesz używać do filtrowania użytkowników, którzy dołączyli przed określonym czasem lub opuścili usługę po określonym czasie. Oba pola używają formatu Timestamp w formacie RFC 3339 UTC „Zulu” z dokładnością do nanosekund i maksymalnie 9 cyframi po przecinku:{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z. Na przykład:

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

    Aby wyświetlić listę wszystkich aktywnych sesji uczestników w rekordzie konferencji, użyj endTime IS NULL.