Collaborer avec les participants

Ce guide explique comment obtenir des informations sur les participants à une ancienne ou à une conférence en cours, ainsi que des informations sur leur session, à l'aide de l'API REST Google Meet.

Un participant est une personne qui a rejoint un appel ou qui utilise le mode Compagnon, qui regarde en tant que spectateur ou qui utilise un appareil de salle connecté à un appel. Il existe une ressource participants pour chaque personne.

Une session de participant est un ID de session unique créé pour chaque paire participant-appareil qui rejoint un appel. Il existe une ressource participantSessions pour chaque session. Si le participant rejoint le même appel plusieurs fois à partir de la même paire participant-appareil, un ID de session unique lui est attribué à chaque fois.

Si vous êtes propriétaire ou participant d'un espace de réunion, vous pouvez appeler les méthodes get() et list() sur les ressources participants et participantSessions pour récupérer les enregistrements des participants.

L'authentification et l'autorisation avec des identifiants utilisateur permettent aux applications Google Meet d'accéder aux données utilisateur et d'effectuer des opérations pour le compte de l'utilisateur authentifié. L'authentification avec la délégation au niveau du domaine vous permet d'autoriser le compte de service d'une application à accéder aux données de vos utilisateurs sans que chacun d'entre eux ait à donner son consentement.

Participants

Les sections suivantes expliquent comment obtenir des informations sur les participants à un enregistrement de conférence.

La ressource participants est associée au champ user. Un user ne peut être que l'un des objets suivants :

  • Un signedinUser peut être :

    • Une personne qui participe depuis un ordinateur personnel, un appareil mobile ou le mode Compagnon.

    • Compte robot utilisé par les appareils de salle de conférence.

  • Un anonymousUser est un utilisateur non identifié qui n'est pas connecté à un compte Google.

  • Un phoneUser est un utilisateur qui participe à la réunion par téléphone et dont l'identité est inconnue, car il ne s'est pas connecté avec un compte Google.

Notez que, bien que les trois objets renvoient un displayName, signedinUser renvoie également un ID user unique qui est interopérable avec l'API Admin SDK et l'API People. Format : users/{user}. Pour en savoir plus sur l'utilisation de l'ID user avec l'API People, consultez Récupérer les détails des participants avec l'API People.

Obtenir des informations sur un participant

Pour obtenir des informations sur un participant spécifique, utilisez la méthode get() sur la ressource participants avec le paramètre de chemin d'accès name. Si vous ne connaissez pas le nom du participant, vous pouvez lister tous les noms des participants à l'aide de la méthode list().

La méthode renvoie les données du participant sous la forme d'une instance de ressource participants.

L'exemple de code suivant montre comment récupérer un participant spécifique :

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)

Remplacez le nom du participant par le nom de l'ID de participant spécifique dans un enregistrement de conférence.

Lister tous les participants

Pour lister les détails de tous les participants à un enregistrement de conférence, utilisez la méthode list() sur la ressource participants avec le paramètre de chemin d'accès parent. Format : conferenceRecords/{conferenceRecord}.

La méthode renvoie une liste des participants à la conférence, triés par earliestStartTime dans l'ordre décroissant, sous la forme d'une instance de ressource participants. Pour ajuster la taille de la page et filtrer les résultats de la requête, consultez Personnaliser la pagination ou filtrer la liste des participants.

L'exemple de code suivant montre comment lister tous les participants à un enregistrement de conférence :

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)

Remplacez la valeur parente par le nom de l'enregistrement de la conférence.

Personnaliser la pagination ou filtrer la liste des participants

Transmettez les paramètres de requête suivants pour personnaliser la pagination des participants ou les filtrer :

  • pageSize : nombre maximal de participants à renvoyer. Le service peut renvoyer un nombre inférieur à cette valeur. Si aucune valeur n'est spécifiée, 100 participants au maximum sont renvoyés. La valeur maximale est de 250. Les valeurs supérieures sont automatiquement ramenées à 250.

  • pageToken : jeton de page reçu d'un appel de liste précédent. Fournissez ce jeton pour récupérer la page suivante.

  • filter : facultatif. Filtre de requête permettant de récupérer des éléments spécifiques dans les résultats de la ressource participants.

    Vous pouvez utiliser les champs earliestStartTime ou latestEndTime pour filtrer les utilisateurs qui ont rejoint le groupe avant ou l'ont quitté après une certaine heure. Les deux champs utilisent le format Timestamp au format RFC 3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux : {year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z. Exemple :

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

    Pour lister tous les participants actifs d'une conférence existante, utilisez latestEndTime IS NULL.

Récupérer les informations sur les participants avec l'API People

Pour récupérer des informations sur un participant, utilisez la méthode get() sur la ressource people de l'API People.

  1. Extrayez l'ID de la personne à partir de la ressource participant à l'aide du dernier composant du chemin d'accès. Par exemple, si la valeur de la ressource participant est conferenceRecords/abc-123/participants/12345, l'ID de l'API People est 12345.

  2. Incluez READ_SOURCE_TYPE_PROFILE, READ_SOURCE_TYPE_CONTACT et READ_SOURCE_TYPE_OTHER_CONTACT ReadSourceType. Cela permet de s'assurer que les utilisateurs internes d'une organisation Google Workspace et les contacts externes sont inclus dans la réponse.

L'exemple de code suivant montre comment rechercher une personne dans les profils d'organisation et les contacts :

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

Remplacez les éléments suivants :

  • PERSON_ID : ID de la personne à trouver.
  • ACCESS_TOKEN : jeton d'accès qui permet d'accéder à plusieurs API.

Sessions des participants

Les sections suivantes expliquent comment obtenir des informations sur les sessions des participants dans un enregistrement de conférence.

Obtenir des détails sur une session de participant

Pour obtenir des détails sur une session de participant spécifique, utilisez la méthode get() sur la ressource participantSessions avec le paramètre de chemin d'accès name. Si vous ne connaissez pas le nom de la session du participant, vous pouvez lister toutes les sessions d'un participant à l'aide de la méthode list().

La méthode renvoie le nom d'un participant sous la forme d'une instance de ressource participantSessions.

L'exemple de code suivant montre comment récupérer une session de participant spécifique :

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)

Remplacez le nom du participant par l'ID de session spécifique d'un participant dans une session.

Lister toutes les sessions des participants

Pour lister les détails de toutes les sessions d'un participant dans un enregistrement de conférence, utilisez la méthode list() sur la ressource participantSessions avec le paramètre de chemin d'accès parent. Format : conferenceRecords/{conferenceRecord}/participants/{participant}.

La méthode renvoie une liste des sessions des participants, triées par startTime dans l'ordre décroissant, sous la forme d'une instance de ressource participantSession. Pour ajuster la taille de la page et filtrer les résultats de la requête, consultez Personnaliser la pagination ou filtrer la liste des sessions des participants.

L'exemple de code suivant montre comment lister toutes les sessions de participants dans un enregistrement de conférence :

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)

Remplacez la valeur parente par le nom des sessions de participant d'un participant dans un enregistrement de conférence.

Personnaliser la pagination ou filtrer la liste des sessions des participants

Transmettez les paramètres de requête facultatifs suivants pour personnaliser la pagination ou filtrer les sessions des participants :

  • pageSize : nombre maximal de sessions de participants à renvoyer. Le service peut renvoyer un nombre inférieur à cette valeur. Si aucune valeur n'est spécifiée, 100 sessions de participants au maximum sont renvoyées. La valeur maximale est de 250. Les valeurs supérieures sont automatiquement ramenées à 250.

  • pageToken : jeton de page reçu d'un appel de liste précédent. Fournissez ce jeton pour récupérer la page suivante.

  • filter : facultatif. Filtre de requête permettant de récupérer des éléments spécifiques dans les résultats de la ressource participants.

    Vous pouvez utiliser les champs startTime ou endTime pour filtrer les utilisateurs qui ont rejoint ou quitté l'organisation avant ou après une certaine heure. Les deux champs utilisent le format Timestamp au format RFC 3339 UTC "Zulu", avec une résolution de l'ordre de la nanoseconde et jusqu'à neuf chiffres décimaux : {year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z. Exemple :

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

    Pour lister toutes les sessions de participants actifs dans l'enregistrement de la conférence, utilisez endTime IS NULL.