W tym samouczku pokazujemy, jak używać interfejsu Google Meet REST API wraz z interfejsem Google Workspace Events API i Google Cloud Pub/Sub, aby obserwować zdarzenia w przestrzeni spotkań Meet i na nie reagować. Przykładowa aplikacja rejestruje, kiedy rozpoczynają się i kończą konferencje, kiedy uczestnicy dołączają do nich lub je opuszczają oraz kiedy są dostępne wygenerowane artefakty spotkania.
Zamiast subskrybować konkretny pokój spotkań, możesz subskrybować użytkownika Meet, aby otrzymywać informacje o wydarzeniach w dowolnym pokoju spotkań, którego jest właścicielem lub organizatorem. Szczegółowe informacje znajdziesz w artykule Subskrybowanie zdarzeń w Google Meet w dokumentacji interfejsu Google Workspace Events API.
Wymagania wstępne
Jeśli chcesz włączyć w organizacji któryś z tych warunków wstępnych, poproś o to administratora Google Workspace:
- Konto Google Workspace z dostępem do Google Meet.
- Uprawnienia do tworzenia projektu Google Cloud.
- Zainstalowany Python 3.
- Zainstalowany interfejs wiersza poleceń gcloud.
Przygotowywanie środowiska
W tej sekcji dowiesz się, jak utworzyć i skonfigurować środowisko lokalne oraz projekt Google Cloud na potrzeby tego samouczka.
Tworzenie katalogu roboczego i wirtualnego środowiska Pythona
Aby utworzyć i aktywować nowe środowisko wirtualne, uruchom w terminalu te polecenia:
Linux/macOS
mkdir meet-tutorialcd meet-tutorialpython3 -mvenv envsource env/bin/activate
Windows (wiersz polecenia)
mkdir meet-tutorialcd meet-tutorialpython3 -mvenv envenv/bin/activate.bat
Windows (PowerShell)
mkdir meet-tutorialcd meet-tutorialpython3 -mvenv envenv/bin/activate.ps1
Tworzenie projektu Google Cloud
Konsola Google Cloud
- W konsoli Google Cloud kliknij Menu > Administracja > Utwórz projekt.
- 
        W polu Nazwa projektu wpisz opisową nazwę projektu.
        Opcjonalnie: aby edytować identyfikator projektu, kliknij Edytuj. Po utworzeniu projektu nie można zmienić jego identyfikatora, więc wybierz taki, który będzie Ci odpowiadać przez cały okres jego istnienia. 
- W polu Lokalizacja kliknij Przeglądaj, aby wyświetlić potencjalne lokalizacje projektu. Następnie kliknij Wybierz.
- Kliknij Utwórz. W konsoli Google Cloud otworzy się strona Panel, a projekt zostanie utworzony w ciągu kilku minut.
interfejs wiersza poleceń gcloud
W jednym z tych środowisk programistycznych uzyskaj dostęp do interfejsu Google Cloud CLI (gcloud):
- 
        Cloud Shell: aby używać terminala online z już skonfigurowanym interfejsem gcloud CLI, aktywuj Cloud Shell.
        
 Aktywuj Cloud Shell
- 
        Lokalna powłoka: aby używać lokalnego środowiska programistycznego, zainstaluj i zainicjuj interfejs wiersza poleceń gcloud.
        
 Aby utworzyć projekt w Google Cloud, użyj poleceniagcloud projects create:gcloud projects create PROJECT_ID
Włączanie płatności za projekt Google Cloud
Konsola Google Cloud
- W konsoli Google Cloud wybierz Płatności. Kliknij Menu > Rozliczenia > Moje projekty.
- W sekcji Wybierz organizację wybierz organizację powiązaną z Twoim projektem Google Cloud.
- W wierszu projektu otwórz menu Działania (), kliknij Zmień ustawienia płatności i wybierz konto Cloud Billing.
- Kliknij Ustaw konto.
interfejs wiersza poleceń gcloud
- Aby wyświetlić listę dostępnych kont rozliczeniowych, uruchom to polecenie:
        gcloud billing accounts list
- Połącz konto rozliczeniowe z projektem Google Cloud:
      gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_IDZastąp następujące elementy: - PROJECT_IDto identyfikator projektu projektu Cloud, w którym chcesz włączyć płatności.
- BILLING_ACCOUNT_IDto identyfikator konta rozliczeniowego, które ma zostać połączone z projektem Google Cloud.
 
Konfigurowanie uwierzytelniania i autoryzacji
Uwierzytelnianie i autoryzacja umożliwiają aplikacji dostęp do zasobów interfejsu API REST usługi Meet. Aby wywołać interfejs API REST Meet, musisz mieć autoryzację użytkownika. W tej sekcji dowiesz się, jak skonfigurować dane logowania użytkownika i poprosić o autoryzację.
Konfigurowanie ekranu zgody OAuth i wybieranie zakresów
Poniższe kroki zawierają przykładowe informacje, które pomogą Ci skonfigurować ekran zgody OAuth w przypadku Twojej aplikacji. Przed opublikowaniem aplikacji na zewnątrz zaktualizuj te informacje.
- W konsoli Google Cloud otwórz Menu > Google Auth platform > Branding.
- Jeśli masz już skonfigurowany Google Auth platform, możesz skonfigurować te ustawienia ekranu zgody OAuth w sekcjach Branding, Odbiorcy i Dostęp do danych. Jeśli zobaczysz komunikat Google Auth platform Jeszcze nie skonfigurowano, kliknij Rozpocznij:
- W sekcji Informacje o aplikacji w polu Nazwa aplikacji wpisz Meet REST API Tutorial.
- W sekcji Adres e-mail pomocy dla użytkowników wybierz adres e-mail, na który użytkownicy mogą pisać, jeśli mają pytania dotyczące ich zgody.
- Kliknij Dalej.
- W sekcji Odbiorcy wybierz Wewnętrzny.
- Kliknij Dalej.
- W sekcji Dane kontaktowe wpisz adres e-mail, na który będziesz otrzymywać powiadomienia o wszelkich zmianach w projekcie.
- Kliknij Dalej.
- W sekcji Zakończ zapoznaj się z zasadami dotyczącymi danych użytkownika w usługach interfejsów API Google i jeśli się z nimi zgadzasz, kliknij Akceptuję zasady dotyczące danych użytkownika w usługach interfejsów API Google.
- Kliknij Dalej.
- Kliknij Utwórz.
- Jeśli jako typ użytkownika wybierzesz Zewnętrzny, dodaj użytkowników testowych:- Kliknij Odbiorcy.
- W sekcji Użytkownicy testowi kliknij Dodaj użytkowników.
- Wpisz swój adres e-mail i adresy e-mail innych autoryzowanych testerów, a potem kliknij Zapisz.
 
- Kliknij Dostęp do danych > Dodaj lub usuń zakresy. Pojawi się panel z listą zakresów każdego interfejsu API włączonego w projekcie Google Cloud.
- W sekcji Ręczne dodawanie zakresów wklej te zakresy:
    - https://www.googleapis.com/auth/meetings.space.created
 
- Kliknij Dodaj do tabeli.
- Kliknij Aktualizuj.
- Po wybraniu zakresów wymaganych przez aplikację kliknij Zapisz.
Więcej informacji o konfigurowaniu zgody OAuth znajdziesz w artykule Pierwsze kroki z Google Auth platform.
Tworzenie identyfikatora klienta
Identyfikator klienta pełni funkcję danych uwierzytelniających Twojej aplikacji podczas przepływów OAuth 2.0. Aplikacja działa lokalnie, więc utwórz identyfikator klienta na komputerze.
- W konsoli Google Cloud otwórz Menu > Google Auth platform > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Aplikacja na komputer.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
- Kliknij Utwórz.
  Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”. 
Instalowanie bibliotek uwierzytelniania Google
Zainstaluj biblioteki uwierzytelniania Google:
pip install google-auth google-auth-oauthlibWykonanie autoryzacji
Interfejs Meet REST API wymaga danych logowania użytkownika w postaci tokena dostępu OAuth 2.0. W tej sekcji zaimplementujesz proces OAuth 2.0, aby poprosić o token dostępu i token odświeżania dla użytkownika.
- W katalogu roboczym utwórz plik - main.pyi dodaj do niego tę treść:- 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()
- Aby uruchomić kod, musisz mieć identyfikator klienta i utworzony wcześniej tajny klucz. Skopiuj pobrany plik klucza tajnego klienta do katalogu roboczego projektu i zmień jego nazwę na - client_secret.json.
- Jeśli chcesz sprawdzić, jak działa autoryzacja, uruchom to polecenie. Aplikacja wyświetli prośbę o autoryzację i po zatwierdzeniu prośby utworzy plik - token.jsonw katalogu roboczym projektu.- python3 main.py
Dodawanie interfejsu Meet REST API
Kod autoryzacji jest już gotowy, więc możesz włączyć i wywołać interfejs Meet REST API.
Włączanie interfejsów API
Ta sekcja koncentruje się na interfejsie Meet REST API, ale w tym samouczku używane są też interfejsy Google Cloud Pub/Sub i Google Workspace Events API.
Konsola Google Cloud
- W konsoli Google Cloud włącz interfejs Google Meet REST API, interfejs Google Workspace Events API i Google Cloud Pub/Sub. 
- Sprawdź, czy włączasz interfejsy API w odpowiednim projekcie w Cloud, a potem kliknij Dalej. 
- Sprawdź, czy włączasz odpowiednie interfejsy API, a potem kliknij Włącz. 
interfejs wiersza poleceń gcloud
- W razie potrzeby ustaw bieżący projekt Cloud na ten, który został utworzony za pomocą polecenia - gcloud config set project:- gcloud config set project PROJECT_ID- Zastąp PROJECT_ID identyfikatorem projektu utworzonego projektu w Cloud. 
- Włącz interfejs Google Meet REST API, interfejs Google Workspace Events API i Google Cloud Pub/Sub za pomocą polecenia - gcloud services enable:- gcloud services enable meet.googleapis.com workspaceevents.googleapis.com pubsub.googleapis.com
Instalowanie biblioteki klienta interfejsu Meet REST API
Aby zainstalować bibliotekę klienta interfejsu Meet REST API:
- Uruchom polecenie: - pip install google-apps-meet
- Aby zaimportować klienta, edytuj plik - main.py:- from google.apps import meet_v2 as meet
Utwórz pokój
Teraz, gdy interfejs Meet REST API jest już dostępny, zdefiniuj funkcję tworzenia przestrzeni spotkań, do której można się subskrybować.
Edytuj main.py i dodaj:
def create_space() -> meet.Space:
    """Create a meeting space."""
    client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS)
    request = meet.CreateSpaceRequest()
    return client.create_space(request=request)
Subskrybowanie zdarzeń
Aby otrzymywać zdarzenia dotyczące miejsca spotkań, utwórz subskrypcję za pomocą interfejsu Google Workspace Events API. Musisz też utworzyć temat Google Cloud Pub/Sub i zasubskrybować go. Będzie on służyć jako punkt końcowy powiadomień, w którym Twoja aplikacja będzie odbierać zdarzenia.
Konfigurowanie Google Cloud Pub/Sub
Aby utworzyć temat Pub/Sub i zasubskrybować go:
Konsola Google Cloud
- W konsoli Google Cloud otwórz Menu 
          > Pub/Sub.
          
          Sprawdź, czy wybrany jest projekt Cloud dla Twojej aplikacji. 
- Kliknij  Utwórz temat i wykonaj te czynności:
          - Wpisz workspace-eventsjako nazwę tematu.
- Pozostaw zaznaczoną opcję Dodaj subskrypcję domyślną.
- Kliknij Utwórz. Pełna nazwa tematu jest sformatowana jako projects/{project}/topics/{topic}. Zapisz tę nazwę, ponieważ będzie Ci potrzebna w kolejnych krokach.
 
- Wpisz 
- Przyznaj dostęp do publikowania wiadomości Pub/Sub w temacie:- W panelu bocznym otwórz kartę Uprawnienia.
- Kliknij Dodaj podmiot zabezpieczeń.
- W polu Nowe podmioty zabezpieczeń wpisz meet-api-event-push@system.gserviceaccount.com.
- W sekcji Przypisz role kliknij Pub/Sub Publisher.
- Kliknij Zapisz.
 Aktualizacja uprawnień do tematu może potrwać kilka minut. 
interfejs wiersza poleceń gcloud
- W projekcie w chmurze utwórz temat, uruchamiając to polecenie:
          gcloud pubsub topics create workspace-eventsDane wyjściowe wyświetlają pełną nazwę tematu sformatowaną jako projects/{project}/topics/{topic}. Zanotuj tę nazwę, aby użyć jej w kolejnych krokach.
- Przyznaj uprawnienia do publikowania wiadomości w temacie:
          gcloud pubsub topics add-iam-policy-binding workspace-events --member='serviceAccount:meet-api-event-push@system.gserviceaccount.com' --role='roles/pubsub.publisher'Aktualizacja uprawnień do tematu może potrwać kilka minut. 
- Utwórz subskrypcję Pub/Sub dla tematu:
          gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAMEZastąp następujące elementy: - TOPIC_NAME: nazwa tematu utworzonego w poprzednim kroku.
 
Zanotuj nazwę tematu i sprawdź, czy wartość {project} to identyfikator projektu w Google Cloud dla Twojej aplikacji. Nazwy tematu użyjesz później do utworzenia subskrypcji Google Workspace.
Tworzenie konta usługi
Konsola Google Cloud
- W konsoli Google Cloud otwórz Menu > Administracja > Konta usługi.
- Kliknij Utwórz konto usługi.
- Wpisz szczegóły konta usługi, a następnie kliknij Utwórz i kontynuuj.
- W sekcji Przyznaj temu kontu usługi dostęp do projektu dodaj te role:- roles/pubsub.subscriber
 
- Kliknij Dalej.
- Opcjonalnie: wpisz użytkowników lub grupy, które mogą zarządzać tym kontem usługi i wykonywać na nim działania. Więcej informacji znajdziesz w artykule Zarządzanie przejmowaniem tożsamości konta usługi.
- Kliknij Gotowe. Zanotuj adres e-mail konta usługi.
interfejs wiersza poleceń gcloud
- Utwórz konto usługi:
        gcloud iam service-accounts create meet-event-listener \ --display-name="meet-event-listener"
- Przypisz do konta usługi wymagane role:
        
        gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:meet-event-listener@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/pubsub.subscriber"Zastąp PROJECT_IDidentyfikatorem projektu Google Cloud.
Używanie konta usługi
Po utworzeniu konta usługi przyznaj sobie uprawnienia do przejmowania tożsamości tego konta.
Konsola Google Cloud
- W kolumnie Działania obok nowo utworzonego konta usługi kliknij > Zarządzaj uprawnieniami.
- Kliknij Dodaj klucz > Przyznaj dostęp.
- Wpisz swój adres e-mail w sekcji Dodaj podmioty zabezpieczeń.
- Wybierz rolę Konta usługi > Twórca tokenów konta usługi.
- Kliknij Zapisz.
- Wróć do terminala i zaloguj się za pomocą gcloud, aby ustawić domyślne dane logowania aplikacji na konto usługi. Gdy pojawi się prośba o autoryzację, zaloguj się na to samo konto, które było używane w poprzednich krokach.gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
interfejs wiersza poleceń gcloud
- Aby dodać uprawnienie, uruchom polecenie gcloud iam service-accounts add-iam-policy-bindingużywając adresu e-mail konta usługi i użytkownika.gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --member="user:YOUR_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"
- Zaloguj się, aby ustawić domyślne dane logowania aplikacji na konto usługi. Gdy pojawi się prośba o autoryzację, zaloguj się na to samo konto, które było używane w poprzednich krokach.
        gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
Instalowanie biblioteki klienta Pub/Sub
- Użyj - pip, aby zainstalować bibliotekę klienta Pub/Sub:- pip install google-cloud-pubsub
- Następnie edytuj - main.py, aby zaimportować klienta:- from google.cloud import pubsub_v1
Tworzenie subskrypcji Google Workspace
Dodaj do main.py ten kod, aby zdefiniować metodę subskrybowania zdarzeń Meet. Ten kod subskrybuje wszystkie zdarzenia dotyczące miejsca spotkania. Po zasubskrybowaniu zdarzenia są publikowane w temacie 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
Następnie dodaj odpowiedni kod, aby pobrać i przetworzyć zdarzenia.
Nasłuchiwanie zdarzeń i ich obsługa
Kontynuuj edytowanie main.py i dodaj poniższy przykładowy kod. Ten kod
implementuje stronę odbiorczą i używa interfejsu Google Cloud Pub/Sub API do pobierania
zdarzeń, gdy tylko staną się dostępne. Poszczególne metody obsługi wyświetlają informacje o odpowiednich zdarzeniach.
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")
Finalizowanie kodu
Dodaj do pliku main.py ten kod, aby wywołać metody tworzenia przestrzeni, subskrybowania zdarzeń i nasłuchiwania. Zastąp stałe TOPIC_NAME i SUBSCRIPTION_NAME własnymi nazwami tematu i subskrypcji, które zostały wcześniej utworzone.
- Dodaj kod do pliku - 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}")- Zastąp następujące elementy: - PROJECT_ID: unikalny identyfikator projektu Cloud Twojej aplikacji, np.- my-sample-project-191923.
- TOPIC_ID: nazwa tematu Pub/Sub utworzonego w projekcie Cloud.
- SUBSCRIPTION_ID: Nazwa subskrypcji, np.- workspace-events-sub.
 
- Uruchom program: - python3 main.py
Jeśli program nie był wcześniej uruchamiany, przy pierwszym uruchomieniu pojawi się prośba o autoryzację. Przyznaj aplikacji uprawnienia do wywoływania interfejsu Meet REST API. Po uruchomieniu programu powinny pojawić się dane wyjściowe podobne do tych:
Join the meeting at https://meet.google.com/abc-mnop-xyz
Dołączanie do konferencji
Aby wygenerować zdarzenia dla aplikacji, dołącz do konferencji, korzystając z adresu URL wyświetlanego przez aplikację. Po dołączeniu możesz wypróbować te działania, aby wywołać zdarzenia:
- Opuść spotkanie i dołącz do niego ponownie.
- Zapraszanie innych osób lub dołączanie do rozmowy przez telefon.
- Włącz nagrywanie i transkrypcje.
Każda z tych czynności generuje zdarzenie, które aplikacja odbiera i rejestruje w konsoli Google Cloud.
Gdy skończysz, użyj ctrl-c, aby przerwać działanie programu.
Opcjonalnie: dodatkowe kroki
Aplikacja rejestruje podstawowe informacje o zdarzeniach. Aby kontynuować zapoznawanie się z interfejsem Meet REST API, spróbuj zmodyfikować aplikację, aby wykonywała te dodatkowe działania.
- Użyj interfejsu People API, aby pobrać dodatkowe informacje o zalogowanych uczestnikach. - 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)- W przykładowych danych logowania powyżej dodaj „https://www.googleapis.com/auth/userinfo.profile” w metodzie autoryzacji. 
- Użyj interfejsu Google Drive API, aby pobrać nagrania i transkrypcje. 
- Zamiast pobierać transkrypcje z Dysku Google, pobieraj je za pomocą metod transkrypcji strukturalnej w interfejsie Meet REST API. 
- uzyskać dostęp do pokoju zamiast go tworzyć; - 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)- W przykładowych danych logowania powyżej dodaj „https://www.googleapis.com/auth/meetings.space.readonly” w metodzie authorize. 
Opcjonalnie: czyszczenie
Aby uniknąć obciążenia konta w konsoli Google Cloud opłatami za zasoby użyte w tym samouczku, zalecamy usunięcie wszystkich utworzonych zasobów i projektów.
Aby usunąć subskrypcję:
Konsola
- W konsoli Google Cloud otwórz Menu > Pub/Sub > Subskrypcje. 
- Wybierz subskrypcję i kliknij Więcej działań. 
- Kliknij Usuń. Pojawi się okno Usuń subskrypcję. 
- Kliknij Usuń. 
interfejs wiersza poleceń gcloud
- Usuń subskrypcję: - gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
Aby usunąć temat:
Konsola
- W konsoli Google Cloud otwórz Menu > Pub/Sub > Tematy. 
- Wybierz temat i kliknij Więcej działań. 
- Kliknij Usuń. Pojawi się okno Usuń temat. 
- Wpisz - delete, a potem kliknij Usuń.
interfejs wiersza poleceń gcloud
- Usuń temat: - gcloud pubsub topics delete TOPIC_NAME
Aby usunąć projekt:
Konsola
- W konsoli Google Cloud otwórz stronę Zarządzanie zasobami. Kliknij Menu > Administracja > Zarządzaj zasobami.
- Z listy projektów wybierz projekt do usunięcia, a potem kliknij Usuń .
- W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.
interfejs wiersza poleceń gcloud
- Aby usunąć projekt, użyj polecenia gcloud projects delete: - gcloud projects delete PROJECT_ID
Powiązane artykuły
- Dowiedz się więcej o rodzajach wydarzeń w Meet, na które możesz się subskrybować.
- Dowiedz się więcej o możliwościach interfejsu Google Meet REST API i zapoznaj się z dokumentacją.
- Tworzenie subskrypcji Google Workspace dla sal spotkań lub użytkowników Meet za pomocą interfejsu Google Workspace Events API.
- Więcej informacji o uwierzytelnianiu znajdziesz w artykule Konfigurowanie ekranu zgody OAuth i wybieranie zakresów.