Praca z uczestnikami

Z tego przewodnika dowiesz się, jak za pomocą interfejsu Google Meet REST API uzyskać szczegółowe informacje o uczestnikach, którzy uczestniczyli w poprzedniej konferencji lub są w aktywnej konferencji, wraz z informacjami o sesji.

Uczestnik to osoba, która dołączyła do rozmowy lub korzysta z trybu towarzyszącego, ogląda jako widz lub jest użytkownikiem urządzenia w sali konferencyjnej połączonej z rozmową. Każda osoba ma do dyspozycji jeden zasób: participants

Sesja uczestnika to unikalny identyfikator sesji utworzony dla każdej pary uczestnik–urządzenie, która dołącza do rozmowy. Każda sesja ma jeden zasób participantSessions. Jeśli uczestnik dołącza do tego samego połączenia kilka razy z tego samego urządzenia, każdemu z tych połączeń przypisany jest unikalny identyfikator sesji.

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

Uwierzytelnianie i autoryzowanie za pomocą danych logowania użytkownika umożliwia 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 kolejnych sekcjach znajdziesz szczegółowe informacje o tym, jak uzyskać informacje o uczestnikach w rekordzie konferencji.

Zasoby participants są złączane za pomocą pola user. user może być tylko jednym z tych obiektów:

  • signedinUser:

    • Osoba dołączająca z komputera osobistego, urządzenia mobilnego lub w trybie Companion.

    • Konto robota używane przez urządzenia w salach konferencyjnych.

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

  • phoneUser to użytkownik dzwoniący z telefonu, którego tożsamość jest nieznana, ponieważ nie jest zalogowany na konto Google.

Pamiętaj, że chociaż wszystkie 3 obiekty zwracają wartość displayName, obiekt signedinUser zwraca również 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 w People API znajdziesz w artykule Pobieranie informacji o uczestnikach za pomocą People API.

Uzyskiwanie 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, korzystając z 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ąpić nazwę uczestnika nazwą konkretnego identyfikatora uczestnika w rekordzie konferencji.

Wyświetlanie listy wszystkich uczestników

Aby wyświetlić szczegóły wszystkich uczestników w rekordzie 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 instancja zasobu participants. Aby dostosować rozmiar strony i przefiltrować wyniki zapytania, zapoznaj się z artykułem Dostosowywanie podziału na strony lub filtrowanie listy uczestników.

Poniższy przykładowy kod pokazuje, jak wyświetlić wszystkich uczestników w rekordzie 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ść nadrzędną nazwą rekordu konferencji.

dostosowywanie podziału na strony lub filtrowanie listy uczestników.

Aby dostosować podział na strony lub filtrować uczestników, podaj te parametry zapytania:

  • pageSize: maksymalna liczba uczestników do zwrócenia. Usługa może zwrócić mniej niż ta wartość. Jeśli nie określisz tej wartości, zwróci ona 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ć kolejną stronę.

  • filter: opcjonalna. Filtr zapytania służący do pobierania określonych elementów z wyników zasobu participants.

    Za pomocą pól earliestStartTime lub latestEndTime możesz filtrować użytkowników, którzy dołączyli przed określonym czasem lub opuścili po nim. Oba pola używają formatu sygnatura czasowa w formacie RFC 3339 UTC „Zulu”, z dokładnością do nanosekund i maksymalnie 9 cyfr 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 polecenia latestEndTime IS NULL.

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

Aby pobrać szczegóły dotyczące uczestnika, użyj metody get() zasobu people w People API.

  1. Wyodrębnij identyfikator osoby z zasobu participant, używając ostatniego elementu ścieżki. Jeśli np. wartość zasobu participant to conferenceRecords/abc-123/participants/12345, identyfikatorem interfejsu People API jest 12345.

  2. Uwzględnij właściwości READ_SOURCE_TYPE_PROFILE, READ_SOURCE_TYPE_CONTACTREAD_SOURCE_TYPE_OTHER_CONTACT.ReadSourceType Dzięki temu w odpowiedzi będą uwzględnieni zarówno użytkownicy wewnętrzni organizacji Google Workspace, jak i kontakty zewnętrzne.

Poniższy przykładowy kod pokazuje, jak wyszukiwać profile organizacji i kontakty osoby:

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, którą chcesz znaleźć.
  • ACCESS_TOKEN: token dostępu, który umożliwia dostęp do wielu interfejsów API.

Sesje uczestników

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

Wyświetlanie szczegółów sesji uczestnika

Aby uzyskać szczegółowe informacje o konkretnej sesji uczestnika, użyj metody get() zasobu participantSessions z parametrem ścieżki name. Jeśli nie znasz nazwy sesji uczestnika, możesz wyświetlić wszystkie sesje uczestnika, używając 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 nazwą identyfikatora sesji uczestnika w sesji uczestnika.

Wyświetlanie listy wszystkich sesji uczestników

Aby wyświetlić szczegóły wszystkich sesji uczestnika w rekordzie konferencji, użyj metody list() zasobu 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, zapoznaj się z artykułem Dostosowywanie podziału na strony lub filtrowanie listy sesji uczestników.

Poniższy przykładowy kod pokazuje, jak wyświetlić wszystkie sesje 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 podziału na strony lub filtrowanie listy sesji uczestników

Aby dostosować podział na strony lub filtrować sesje uczestników, prześlij te opcjonalne parametry zapytania:

  • pageSize: maksymalna liczba sesji uczestników do zwrócenia. Usługa może zwrócić mniej niż ta wartość. Jeśli nie podasz tej wartości, zwróci się 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ć kolejną stronę.

  • filter: opcjonalna. Filtr zapytania służący do pobierania określonych elementów z wyników zapytania o zasoby (participants).

    Za pomocą pól startTime lub endTime możesz filtrować użytkowników, którzy dołączyli przed lub opuścili po określonym czasie. Oba pola używają formatu sygnatura czasowa w formacie RFC 3339 UTC „Zulu”, z dokładnością do nanosekund i maksymalnie 9 cyfr 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 nagraniu konferencji, użyj opcji endTime IS NULL.