Ce tutoriel explique comment utiliser l'API REST Google Meet avec l'API Google Workspace Events et Google Cloud Pub/Sub pour observer les événements dans un espace de réunion Meet et y réagir. L'application exemple enregistre le début et la fin des conférences, l'arrivée et le départ des participants, ainsi que la disponibilité des artefacts de réunion générés.
Au lieu de vous abonner à un espace de réunion spécifique, vous pouvez vous abonner à un utilisateur Meet pour recevoir des événements pour tous les espaces de réunion dont il est propriétaire ou qu'il organise. Pour en savoir plus, consultez S'abonner aux événements Google Meet dans la documentation de l'API Google Workspace Events.
Prérequis
Si vous avez besoin d'activer l'un de ces prérequis pour votre organisation, demandez à votre administrateur Google Workspace de l'activer :
- Compte Google Workspace ayant accès à Google Meet.
- Vous devez avoir accès à la création d'un projet Google Cloud.
- Python 3 est installé.
- gcloud CLI installé.
Préparer votre environnement
Cette section explique comment créer et configurer votre environnement local et le projet Google Cloud pour ce tutoriel.
Créer un répertoire de travail et un environnement virtuel Python
Pour créer et activer un nouvel environnement virtuel, exécutez les commandes suivantes dans votre terminal.
Linux/macOS
mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
source env/bin/activate
Windows (invite de commande)
mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
env/bin/activate.bat
Windows (PowerShell)
mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
env/bin/activate.ps1
Créer un projet Google Cloud
Console Google Cloud
- Dans la console Google Cloud, accédez à Menu > IAM et administration > Créer un projet.
-
Dans le champ Nom du projet, saisissez un nom descriptif pour votre projet.
Facultatif : Pour modifier l'ID du projet, cliquez sur Modifier. Vous ne pourrez plus modifier cet ID une fois le projet créé. Choisissez-en donc un qui répondra à vos besoins pour toute la durée de vie du projet.
- Dans le champ Emplacement, cliquez sur Parcourir pour afficher les emplacements potentiels de votre projet. Cliquez ensuite sur Sélectionner.
- Cliquez sur Créer. La console Google Cloud accède à la page "Tableau de bord" et votre projet est créé en quelques minutes.
CLI gcloud
Dans l'un des environnements de développement suivants, accédez à la Google Cloud CLI (gcloud
) :
-
Cloud Shell : pour utiliser un terminal en ligne avec la gcloud CLI déjà configurée, activez Cloud Shell.
Activer Cloud Shell -
Shell local : pour utiliser un environnement de développement local, installez et initialisez la gcloud CLI.
Pour créer un projet Cloud, utilisez la commandegcloud projects create
: Remplacez PROJECT_ID en définissant l'ID du projet que vous souhaitez créer.gcloud projects create PROJECT_ID
Activer la facturation pour le projet Google Cloud
Console Google Cloud
- Dans la console Google Cloud, accédez à Facturation. Cliquez sur Menu > Facturation > Mes projets.
- Dans Sélectionner une organisation, choisissez l'organisation associée à votre projet Google Cloud.
- Sur la ligne du projet, ouvrez le menu Actions ( ), cliquez sur Modifier la facturation, puis choisissez le compte de facturation Cloud.
- Cliquez sur Définir le compte.
CLI gcloud
- Pour lister les comptes de facturation disponibles, exécutez la commande suivante :
gcloud billing accounts list
- Associez un compte de facturation à un projet Google Cloud :
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
Remplacez les éléments suivants :
PROJECT_ID
correspond à l'ID du projet pour le projet Cloud pour lequel vous souhaitez activer la facturation.BILLING_ACCOUNT_ID
est l'ID du compte de facturation à associer au projet Google Cloud.
Configurer l'authentification et l'autorisation
L'authentification et l'autorisation permettent à l'application d'accéder aux ressources de l'API REST Meet. L'autorisation de l'utilisateur est requise pour appeler l'API REST Meet. Cette section vous explique comment configurer les identifiants utilisateur et demander une autorisation.
Configurer l'écran de consentement OAuth et choisir des habilitations
Les étapes suivantes suggèrent des informations de substitution pour configurer l'écran de consentement OAuth pour votre application. Avant de publier l'application en externe, mettez à jour ces informations.
- Dans la console Google Cloud, accédez à Menu > Google Auth platform > Branding.
- Si vous avez déjà configuré Google Auth platform, vous pouvez configurer les paramètres de l'écran d'autorisation OAuth suivants dans Branding, Audience et Accès aux données. Si le message Google Auth platform pas encore configuré s'affiche, cliquez sur Commencer :
- Sous Informations sur l'application, dans Nom de l'application, saisissez
Meet REST API Tutorial
. - Dans Adresse e-mail d'assistance utilisateur, sélectionnez une adresse e-mail d'assistance que les utilisateurs pourront contacter s'ils ont des questions sur leur consentement.
- Cliquez sur Suivant.
- Sous Audience, sélectionnez Interne.
- Cliquez sur Suivant.
- Sous Coordonnées, saisissez une adresse e-mail à laquelle vous pourrez être informé de toute modification apportée à votre projet.
- Cliquez sur Suivant.
- Sous Terminer, consultez le Règlement sur les données utilisateur dans les services d'API Google et, si vous l'acceptez, sélectionnez J'accepte le Règlement sur les données utilisateur dans les services d'API Google.
- Cliquez sur Continuer.
- Cliquez sur Créer.
- Si vous avez sélectionné Externe comme type d'utilisateur, ajoutez des utilisateurs de test :
- Cliquez sur Audience.
- Sous Utilisateurs de test, cliquez sur Ajouter des utilisateurs.
- Saisissez votre adresse e-mail et celles des autres utilisateurs de test autorisés, puis cliquez sur Enregistrer.
- Cliquez sur Accès aux données > Ajouter ou supprimer des niveaux d'accès. Un panneau s'affiche avec la liste des niveaux d'accès pour chaque API que vous avez activée dans votre projet Google Cloud.
- Sous Ajouter manuellement des niveaux d'accès, collez les niveaux d'accès suivants :
https://www.googleapis.com/auth/meetings.space.created
- Cliquez sur Ajouter au tableau.
- Cliquez sur Mettre à jour.
- Après avoir sélectionné les niveaux d'accès requis par votre application, cliquez sur Enregistrer.
Pour en savoir plus sur la configuration du consentement OAuth, consultez Premiers pas avec Google Auth platform.
Créer un ID client
L'ID client sert d'identifiant pour votre application lors des flux OAuth 2.0. Étant donné que l'application s'exécute localement, créez un ID client pour ordinateur.
- Dans la console Google Cloud, accédez à Menu > Google Auth platform > Clients.
- Cliquez sur Créer un client.
- Cliquez sur Type d'application > Application de bureau.
- Dans le champ Nom, saisissez un nom pour l'identifiant. Ce nom n'apparaît que dans la console Google Cloud.
- Cliquez sur Créer.
Les identifiants que vous venez de créer s'affichent sous "ID client OAuth 2.0".
Installer les bibliothèques Google Auth
Installez les bibliothèques Google Auth :
pip install google-auth google-auth-oauthlib
Exécuter l'autorisation
L'API REST Meet nécessite des identifiants utilisateur sous la forme d'un jeton d'accès OAuth 2.0. Dans cette section, vous allez implémenter le flux OAuth 2.0 pour demander un jeton d'accès et un jeton d'actualisation pour l'utilisateur.
Dans votre répertoire de travail, créez le fichier
main.py
et ajoutez-y le contenu suivant :import os import json from google.auth.transport import requests from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow def authorize() -> Credentials: """Ensure valid credentials for calling the Meet REST API.""" CLIENT_SECRET_FILE = "./client_secret.json" credentials = None if os.path.exists('token.json'): credentials = Credentials.from_authorized_user_file('token.json') if credentials is None: flow = InstalledAppFlow.from_client_secrets_file( CLIENT_SECRET_FILE, scopes=[ 'https://www.googleapis.com/auth/meetings.space.created', ]) flow.run_local_server(port=0) credentials = flow.credentials if credentials and credentials.expired: credentials.refresh(requests.Request()) if credentials is not None: with open("token.json", "w") as f: f.write(credentials.to_json()) return credentials USER_CREDENTIALS = authorize()
Pour exécuter le code, vous avez besoin de l'ID client et du code secret créés précédemment. Copiez le fichier du code secret du client téléchargé dans le répertoire de travail du projet et renommez-le
client_secret.json
.Si vous souhaitez tester le fonctionnement de l'autorisation, exécutez la commande suivante. L'application demande une autorisation et crée un fichier
token.json
dans le répertoire de travail du projet une fois la demande approuvée.python3 main.py
Ajouter l'API Meet REST
Maintenant que le code d'autorisation est terminé, il est temps d'activer et d'appeler l'API REST Meet.
Activer les API
Bien que cette section soit axée sur l'API REST Meet, ce tutoriel utilise également l'API Google Cloud Pub/Sub et l'API Google Workspace Events.
Console Google Cloud
Dans la console Google Cloud, activez l'API REST Google Meet, l'API Google Workspace Events et Google Cloud Pub/Sub.
Vérifiez que vous activez les API dans le bon projet Cloud, puis cliquez sur Suivant.
Vérifiez que vous activez les bonnes API, puis cliquez sur Activer.
CLI gcloud
Si nécessaire, définissez le projet Cloud actuel sur celui que vous avez créé avec la commande
gcloud config set project
:gcloud config set project PROJECT_ID
Remplacez PROJECT_ID par l'ID du projet du projet Cloud que vous avez créé.
Activez l'API REST Google Meet, l'API Google Workspace Events et Google Cloud Pub/Sub avec la commande
gcloud services enable
:gcloud services enable meet.googleapis.com workspaceevents.googleapis.com pubsub.googleapis.com
Installer la bibliothèque cliente de l'API REST Meet
Pour installer la bibliothèque cliente de l'API REST Meet, procédez comme suit :
Exécutez la commande suivante :
pip install google-apps-meet
Modifiez le fichier
main.py
pour importer le client :from google.apps import meet_v2 as meet
Créer un espace
Maintenant que l'API REST Meet est disponible, définissez une fonction pour créer un espace de réunion auquel il est possible de s'abonner.
Modifiez main.py
et ajoutez :
def create_space() -> meet.Space:
"""Create a meeting space."""
client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS)
request = meet.CreateSpaceRequest()
return client.create_space(request=request)
S'abonner à des événements
Pour recevoir des événements concernant un espace de réunion, vous devez créer un abonnement à l'aide de l'API Google Workspace Events. Vous devez également créer un sujet Google Cloud Pub/Sub et vous y abonner. Il servira de point de terminaison de notification où votre application recevra les événements.
Configurer Google Cloud Pub/Sub
Pour créer un sujet Pub/Sub et vous y abonner :
Console Google Cloud
- Dans la console Google Cloud, accédez au menu > Pub/Sub.
Assurez-vous que le projet Cloud de votre application est sélectionné.
- Cliquez sur
- Saisissez
workspace-events
comme nom de thème. - Laissez l'option Ajouter un abonnement par défaut sélectionnée.
- Cliquez sur Créer. Le nom complet de votre sujet est au format
projects/{project}/topics/{topic}
. Notez ce nom pour l'utiliser lors des étapes suivantes.
Créer un sujet, puis procédez comme suit :
- Saisissez
- Accordez l'accès à la publication de messages Pub/Sub dans votre sujet :
- Dans le panneau latéral, ouvrez l'onglet Autorisations.
- Cliquez sur Ajouter un compte principal.
- Dans Nouveaux comptes principaux, saisissez
meet-api-event-push@system.gserviceaccount.com
. - Dans Attribuer des rôles, sélectionnez
Pub/Sub Publisher
. - Cliquez sur Enregistrer.
La mise à jour des autorisations pour votre thème peut prendre quelques minutes.
CLI gcloud
- Dans votre projet Cloud, créez un sujet en exécutant la commande suivante :
gcloud pubsub topics create workspace-events
Le résultat affiche le nom complet du sujet, au format
projects/{project}/topics/{topic}
. Notez ce nom pour l'utiliser lors des étapes suivantes. - Accordez l'accès à la publication de messages dans votre sujet :
gcloud pubsub topics add-iam-policy-binding workspace-events --member='serviceAccount:meet-api-event-push@system.gserviceaccount.com' --role='roles/pubsub.publisher'
La mise à jour des autorisations pour votre thème peut prendre quelques minutes.
- Créez un abonnement Pub/Sub pour le sujet :
gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAME
Remplacez les éléments suivants :
TOPIC_NAME
: nom du sujet que vous avez créé à l'étape précédente.
Notez le nom du sujet et assurez-vous que la valeur de {project}
correspond à l'ID du projet Cloud pour votre application. Vous utiliserez le nom du sujet pour créer l'abonnement Google Workspace ultérieurement.
Créer un compte de service
Console Google Cloud
- Dans la console Google Cloud, accédez au menu > IAM et administration > Comptes de service.
- Cliquez sur Créer un compte de service.
- Renseignez les détails du compte de service, puis cliquez sur Créer et continuer.
- Dans la section Autoriser ce compte de service à accéder au projet, ajoutez les rôles suivants :
roles/pubsub.subscriber
- Cliquez sur Continuer.
- Facultatif : Saisissez les utilisateurs ou les groupes qui peuvent gérer ce compte de service et effectuer des actions avec. Pour en savoir plus, consultez Gérer l'emprunt d'identité d'un compte de service.
- Cliquez sur OK. Notez l'adresse e-mail du compte de service.
CLI gcloud
- Créez le compte de service :
gcloud iam service-accounts create meet-event-listener \ --display-name="meet-event-listener"
- Attribuez les rôles nécessaires au compte de service :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:meet-event-listener@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"
Remplacez
PROJECT_ID
par l'ID de votre projet Google Cloud.
Utiliser le compte de service
Après avoir créé le compte de service, accordez-vous l'accès pour emprunter l'identité du compte de service.
Console Google Cloud
- Dans la colonne Actions du compte de service que vous venez de créer, cliquez sur > Gérer les autorisations.
- Cliquez sur Ajouter une clé > Accorder l'accès.
- Saisissez votre adresse e-mail sous Ajouter des comptes principaux.
- Sélectionnez le rôle Comptes de service > Créateur de jetons du compte de service.
- Cliquez sur Enregistrer.
- Revenez à votre terminal et connectez-vous avec
gcloud
pour définir les identifiants par défaut de l'application sur le compte de service. Lorsque vous êtes invité à autoriser l'accès, connectez-vous avec le même compte que celui utilisé lors des étapes précédentes.gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
CLI gcloud
- Pour ajouter l'autorisation, exécutez
gcloud iam service-accounts add-iam-policy-binding
en utilisant l'adresse e-mail du compte de service et de l'utilisateur.gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --member="user:YOUR_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"
- Connectez-vous pour définir les identifiants par défaut de l'application sur le compte de service. Lorsque vous êtes invité à autoriser l'accès, connectez-vous avec le même compte que celui utilisé lors des étapes précédentes.
gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
Installer la bibliothèque cliente Pub/Sub
Utilisez
pip
pour installer la bibliothèque cliente pour Pub/Sub :pip install google-cloud-pubsub
Modifiez ensuite
main.py
pour importer le client :from google.cloud import pubsub_v1
Créer l'abonnement Google Workspace
Ajoutez le code suivant à main.py
pour définir une méthode d'abonnement aux événements Meet. Ce code s'abonne à tous les événements d'un espace de réunion. Une fois l'abonnement souscrit, les événements sont publiés dans le sujet Pub/Sub.
def subscribe_to_space(space_name: str = None, topic_name: str = None):
"""Subscribe to events for a meeting space."""
session = requests.AuthorizedSession(USER_CREDENTIALS)
body = {
'targetResource': f"//meet.googleapis.com/{space_name}",
"eventTypes": [
"google.workspace.meet.conference.v2.started",
"google.workspace.meet.conference.v2.ended",
"google.workspace.meet.participant.v2.joined",
"google.workspace.meet.participant.v2.left",
"google.workspace.meet.recording.v2.fileGenerated",
"google.workspace.meet.transcript.v2.fileGenerated",
],
"payloadOptions": {
"includeResource": False,
},
"notificationEndpoint": {
"pubsubTopic": topic_name
},
"ttl": "86400s",
}
response = session.post("https://workspaceevents.googleapis.com/v1/subscriptions", json=body)
return response
Ajoutez ensuite le code correspondant pour extraire et traiter les événements.
Écouter et gérer les événements
Continuez à modifier main.py
et ajoutez l'exemple de code suivant. Ce code implémente le côté réception et utilise l'API Google Cloud Pub/Sub pour extraire les événements à mesure qu'ils sont disponibles. Les différentes méthodes de gestionnaire affichent des informations sur les événements correspondants.
def format_participant(participant: meet.Participant) -> str:
"""Formats a participant for display on the console."""
if participant.anonymous_user:
return f"{participant.anonymous_user.display_name} (Anonymous)"
if participant.signedin_user:
return f"{participant.signedin_user.display_name} (ID: {participant.signedin_user.user})"
if participant.phone_user:
return f"{participant.phone_user.display_name} (Phone)"
return "Unknown participant"
def fetch_participant_from_session(session_name: str) -> meet.Participant:
"""Fetches the participant for a session."""
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
# Use the parent path of the session to fetch the participant details
parsed_session_path = client.parse_participant_session_path(session_name)
participant_resource_name = client.participant_path(
parsed_session_path["conference_record"],
parsed_session_path["participant"])
return client.get_participant(name=participant_resource_name)
def on_conference_started(message: pubsub_v1.subscriber.message.Message):
"""Display information about a conference when started."""
payload = json.loads(message.data)
resource_name = payload.get("conferenceRecord").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
conference = client.get_conference_record(name=resource_name)
print(f"Conference (ID {conference.name}) started at {conference.start_time.rfc3339()}")
def on_conference_ended(message: pubsub_v1.subscriber.message.Message):
"""Display information about a conference when ended."""
payload = json.loads(message.data)
resource_name = payload.get("conferenceRecord").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
conference = client.get_conference_record(name=resource_name)
print(f"Conference (ID {conference.name}) ended at {conference.end_time.rfc3339()}")
def on_participant_joined(message: pubsub_v1.subscriber.message.Message):
"""Display information about a participant when they join a meeting."""
payload = json.loads(message.data)
resource_name = payload.get("participantSession").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
session = client.get_participant_session(name=resource_name)
participant = fetch_participant_from_session(resource_name)
display_name = format_participant(participant)
print(f"{display_name} joined at {session.start_time.rfc3339()}")
def on_participant_left(message: pubsub_v1.subscriber.message.Message):
"""Display information about a participant when they leave a meeting."""
payload = json.loads(message.data)
resource_name = payload.get("participantSession").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
session = client.get_participant_session(name=resource_name)
participant = fetch_participant_from_session(resource_name)
display_name = format_participant(participant)
print(f"{display_name} left at {session.end_time.rfc3339()}")
def on_recording_ready(message: pubsub_v1.subscriber.message.Message):
"""Display information about a recorded meeting when artifact is ready."""
payload = json.loads(message.data)
resource_name = payload.get("recording").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
recording = client.get_recording(name=resource_name)
print(f"Recording available at {recording.drive_destination.export_uri}")
def on_transcript_ready(message: pubsub_v1.subscriber.message.Message):
"""Display information about a meeting transcript when artifact is ready."""
payload = json.loads(message.data)
resource_name = payload.get("transcript").get("name")
client = meet.ConferenceRecordsServiceClient(credentials=USER_CREDENTIALS)
transcript = client.get_transcript(name=resource_name)
print(f"Transcript available at {transcript.docs_destination.export_uri}")
def on_message(message: pubsub_v1.subscriber.message.Message) -> None:
"""Handles an incoming event from the Google Cloud Pub/Sub API."""
event_type = message.attributes.get("ce-type")
handler = {
"google.workspace.meet.conference.v2.started": on_conference_started,
"google.workspace.meet.conference.v2.ended": on_conference_ended,
"google.workspace.meet.participant.v2.joined": on_participant_joined,
"google.workspace.meet.participant.v2.left": on_participant_left,
"google.workspace.meet.recording.v2.fileGenerated": on_recording_ready,
"google.workspace.meet.transcript.v2.fileGenerated": on_transcript_ready,
}.get(event_type)
try:
if handler is not None:
handler(message)
message.ack()
except Exception as error:
print("Unable to process event")
print(error)
def listen_for_events(subscription_name: str = None):
"""Subscribe to events on the subscription."""
subscriber = pubsub_v1.SubscriberClient()
with subscriber:
future = subscriber.subscribe(subscription_name, callback=on_message)
print("Listening for events")
try:
future.result()
except KeyboardInterrupt:
future.cancel()
print("Done")
Finaliser le code
Ajoutez le code suivant à main.py
pour appeler les méthodes permettant de créer l'espace, de s'abonner aux événements et d'écouter. Mettez à jour les constantes TOPIC_NAME
et SUBSCRIPTION_NAME
avec vos propres noms de thème et d'abonnement que vous avez créés précédemment.
Ajoutez le code à
main.py
:space = create_space() print(f"Join the meeting at {space.meeting_uri}") TOPIC_NAME = "projects/PROJECT_ID/topics/TOPIC_ID" SUBSCRIPTION_NAME = "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID" subscription = subscribe_to_space(topic_name=TOPIC_NAME, space_name=space.name) if (subscription.status_code) == 200: listen_for_events(subscription_name=SUBSCRIPTION_NAME) else: print(f"Subscription to Meet events failed, response data: {subscription.content}")
Remplacez les éléments suivants :
PROJECT_ID
: ID unique du projet Cloud pour votre application, tel quemy-sample-project-191923
.TOPIC_ID
: nom du sujet Pub/Sub que vous avez créé dans votre projet Cloud.SUBSCRIPTION_ID
: nom de votre abonnement, tel queworkspace-events-sub
.
Exécutez le programme :
python3 main.py
Si vous n'avez jamais exécuté le programme, il vous demandera une autorisation la première fois. Accorder l'accès à l'application pour appeler l'API REST Meet Une fois le programme exécuté, un résultat semblable à celui-ci devrait s'afficher :
Join the meeting at https://meet.google.com/abc-mnop-xyz
Participer à la conférence
Pour générer des événements pour l'application, rejoignez la conférence à l'aide de l'URL affichée par l'application. Une fois que vous avez rejoint le canal, vous pouvez essayer les actions suivantes pour déclencher des événements :
- Quittez la réunion, puis rejoignez-la à nouveau.
- Invitez d'autres personnes ou rejoignez la réunion par téléphone.
- Activez les enregistrements et les transcriptions.
Chacune de ces activités génère un événement que l'application reçoit et consigne dans la console Google Cloud.
Utilisez ctrl-c
pour interrompre le programme lorsque vous avez terminé.
Facultatif : Autres solutions
L'application enregistre des informations de base sur les événements. Pour continuer à explorer l'API REST Meet, essayez de modifier l'application pour effectuer ces actions supplémentaires.
Utilisez l'API People pour récupérer des informations supplémentaires sur les participants connectés.
def subscribe_to_user(user_name: str = None, topic_name: str = None) -> requests_lib.Response: """Subscribe to events for a user.""" session = requests.AuthorizedSession(USER_CREDENTIALS) body = { "targetResource": f"//cloudidentity.googleapis.com/users/{user_name}", "eventTypes": [ "google.workspace.meet.conference.v2.started", "google.workspace.meet.conference.v2.ended", "google.workspace.meet.participant.v2.joined", "google.workspace.meet.participant.v2.left", "google.workspace.meet.recording.v2.fileGenerated", "google.workspace.meet.transcript.v2.fileGenerated", ], "payloadOptions": { "includeResource": False, }, "notificationEndpoint": {"pubsubTopic": topic_name}, "ttl": "86400s", } response = session.post( "https://workspaceevents.googleapis.com/v1/subscriptions", json=body ) return response service = build("people", "v1", credentials=USER_CREDENTIALS) response = ( service.people() .get(resourceName="people/me", personFields="names,emailAddresses") .execute() ) resource_name = response.get("resourceName") if resource_name.startswith("people/"): resource_name = resource_name[len("people/") :] subscription = subscribe_to_user(topic_name=TOPIC_NAME, user_name=resource_name)
Veillez à ajouter "https://www.googleapis.com/auth/userinfo.profile" dans la méthode d'autorisation des exemples d'identifiants ci-dessus.
Utilisez l'API Google Drive pour télécharger les enregistrements et les transcriptions.
Au lieu de télécharger les transcriptions depuis Google Drive, récupérez-les à l'aide des méthodes de transcription structurée de l'API REST Meet.
obtenir un espace au lieu de le créer.
def get_space(meeting_code: str) -> meet.Space: """Get a meeting space.""" client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS) return client.get_space(name="spaces/" + meeting_code)
Veillez à ajouter "https://www.googleapis.com/auth/meetings.space.readonly" dans la méthode d'autorisation des exemples d'identifiants ci-dessus.
Facultatif : Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce tutoriel ne soient facturées sur votre compte de la console Google Cloud, nous vous recommandons de supprimer les ressources et les projets créés.
Pour supprimer l'abonnement :
Console
Dans la console Google Cloud, accédez à Menu > Pub/Sub > Abonnements.
Sélectionnez l'abonnement, puis cliquez sur
Autres actions.Cliquez sur Supprimer. La fenêtre Supprimer l'abonnement s'affiche.
Cliquez sur Supprimer.
CLI gcloud
Supprimez l'abonnement :
gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
Pour supprimer le thème :
Console
Dans la console Google Cloud, accédez au menu > Pub/Sub > Sujets.
Sélectionnez le thème, puis cliquez sur
Autres actions.Cliquez sur Supprimer. La fenêtre Supprimer le thème s'affiche.
Saisissez
delete
, puis cliquez sur Supprimer.
CLI gcloud
Supprimez le thème :
gcloud pubsub topics delete TOPIC_NAME
Pour supprimer le projet :
Console
- Dans la console Google Cloud, accédez à la page Gérer les ressources. Cliquez sur Menu > IAM et administration > Gérer les ressources.
- Dans la liste des projets, sélectionnez celui que vous souhaitez supprimer, puis cliquez sur Supprimer .
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
CLI gcloud
Pour supprimer un projet, utilisez la commande gcloud projects delete :
gcloud projects delete PROJECT_ID
Articles associés
- Découvrez les types d'événements Meet auxquels vous pouvez vous abonner.
- Découvrez ce que l'API REST Google Meet peut faire et consultez la documentation de référence.
- Créez un abonnement Google Workspace aux espaces de réunion ou aux utilisateurs Meet à l'aide de l'API Google Workspace Events.
- Pour en savoir plus sur l'authentification, consultez Configurer l'écran de consentement OAuth et choisir des habilitations.