Collaborer avec les participants

Ce guide explique comment obtenir des informations sur les participants à une conférence passée ou à une conférence active, ainsi que 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 un appareil de salle connecté à un appel. Une ressource participants est attribuée à 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, des ID de session uniques lui sont attribués.

Si vous êtes propriétaire ou participant à 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 à l'aide d'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 s'unit au champ user. Un user ne peut être qu'un des objets suivants:

  • Un signedinUser est soit:

    • Personne participant 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 par téléphone, mais 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 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 informations sur les 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 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 d'un participant en tant qu'instance d'une 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 afficher les informations sur tous les participants d'un enregistrement de conférence, utilisez la méthode list() sur la ressource participants avec le paramètre de chemin parent. Format : conferenceRecords/{conferenceRecord}.

La méthode renvoie une liste des participants à la conférence, triée par earliestStartTime par ordre décroissant, en tant qu'instance d'une 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 ou filtrer les participants:

  • 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 250. Les valeurs supérieures à 250 sont automatiquement remplacées par 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 ou quitté un groupe avant ou après une certaine date. 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érez 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 dans l'API People.

  1. Extrayez l'ID de la personne à partir de la ressource participant à l'aide du composant de fin 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 ainsi que 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 à la fois des profils d'organisation et des contacts pour une personne:

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 à rechercher.
  • 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 d'un participant dans un enregistrement de conférence.

Obtenir des informations sur une session de participant

Pour obtenir des informations sur une session de participant spécifique, utilisez la méthode get() sur la ressource participantSessions avec le paramètre de chemin 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 un nom de participant en tant qu'instance d'une 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 le nom de l'ID de session de participant spécifique dans une session de participant.

Lister toutes les sessions des participants

Pour afficher 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 parent. Format : conferenceRecords/{conferenceRecord}/participants/{participant}.

La méthode renvoie une liste de sessions de participants, triées par startTime dans l'ordre décroissant, en tant qu'instance d'une 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 des 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 250. Les valeurs supérieures à 250 sont automatiquement remplacées par 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é un groupe avant ou après une certaine date. 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 répertorier toutes les sessions de participants actives dans l'enregistrement de la conférence, utilisez endTime IS NULL.