Obserwowanie wydarzeń dotyczących spotkań za pomocą Pythona i interfejsu Google Meet REST API

Ten samouczek pokazuje, jak używać interfejsu Google Meet API typu REST wraz z interfejsem Google Workspace Event API i Google Cloud Pub/Sub do obserwowania zdarzeń spotkania i reagowania na nie. Przykładowa aplikacja rejestruje czas rozpoczęcia i zakończenia rozmowy wideo, dołączanie i opuszczanie przez uczestników oraz dostępność wygenerowanych elementów spotkania.

Więcej informacji o pracy z zdarzeniami znajdziesz w artykule Subskrybowanie zdarzeń Google Meet w dokumentacji interfejsu Google Workspace Event API.

Wymagania wstępne

Jeśli musisz włączyć w organizacji któreś z tych wymagań wstępnych, poproś administratora Google Workspace o włączenie tych wymagań:

Przygotowywanie środowiska

Z tej sekcji dowiesz się, jak utworzyć i skonfigurować środowisko lokalne oraz projekt Google Cloud na potrzeby tego samouczka.

Tworzenie katalogu roboczego i środowiska wirtualnego Pythona

Aby utworzyć i aktywować nowe środowisko wirtualne, uruchom w terminalu te polecenia.

Linux/macOS

mkdir meet-tutorial
cd meet-tutorial
python3 -mvenv env
source env/bin/activate

Windows (wiersz polecenia)

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

Tworzenie projektu Google Cloud

Konsola Google Cloud

  1. W konsoli Google Cloud kliknij Menu > Administracja > Utwórz projekt.

    Otwórz stronę Utwórz projekt

  2. W polu Nazwa projektu wpisz opisową nazwę projektu.

    Opcjonalnie: aby edytować identyfikator projektu, kliknij Edytuj. Po utworzeniu projektu nie można zmienić identyfikatora, więc wybierz taki, który spełnia Twoje potrzeby przez cały okres istnienia projektu.

  3. W polu Lokalizacja kliknij Przeglądaj, aby wyświetlić potencjalne lokalizacje swojego projektu. Następnie kliknij Wybierz.
  4. Kliknij Utwórz. W konsoli Google Cloud otworzy się strona panelu, a w ciągu kilku minut zostanie utworzony projekt.

interfejs wiersza poleceń gcloud

Uzyskaj dostęp do interfejsu wiersza poleceń Google Cloud („gcloud”) w jednym z tych środowisk programistycznych:

  • Cloud Shell: aby używać terminala online ze skonfigurowanym już interfejsem wiersza poleceń gcloud, aktywuj Cloud Shell.
    Aktywuj Cloud Shell
  • Local Shell (Powłoka lokalna): aby używać lokalnego środowiska programistycznego, zainstaluj i initialize interfejs wiersza poleceń gcloud.
    Aby utworzyć projekt Cloud, użyj polecenia `gcloud projects create`:
    gcloud projects create PROJECT_ID
    Zastąp PROJECT_ID, ustawiając identyfikator projektu, który chcesz utworzyć.

Włączanie płatności w projekcie Google Cloud

Konsola Google Cloud

  1. W konsoli Google Cloud otwórz Rozliczenia. Kliknij Menu > Płatności > Moje projekty.

    Otwórz stronę Płatności w moich projektach

  2. W sekcji Wybierz organizację wybierz organizację powiązaną z Twoim projektem Google Cloud.
  3. W wierszu projektu otwórz menu Działania (), kliknij Zmień płatności i wybierz konto rozliczeniowe Cloud.
  4. Kliknij Ustaw konto.

interfejs wiersza poleceń gcloud

  1. Aby wyświetlić listę dostępnych kont rozliczeniowych, uruchom polecenie:
    gcloud billing accounts list
  2. Połącz konto rozliczeniowe z projektem Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Zastąp następujące elementy:

    • PROJECT_ID to identyfikator projektu projektu Cloud, w którym chcesz włączyć płatności.
    • BILLING_ACCOUNT_ID to 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 Meet API REST. Do wywoływania interfejsu API REST Meet wymagana jest autoryzacja użytkownika. Z tej sekcji dowiesz się, jak skonfigurować dane logowania użytkownika i poprosić o autoryzację.

Skonfiguruj ekran zgody OAuth i wybierz zakresy

Wykonaj poniższe czynności, aby zasugerować użycie informacji zastępczych, aby skonfigurować ekran zgody OAuth dla Twojej aplikacji. Zanim opublikujesz aplikację na zewnątrz, zaktualizuj te informacje.

  1. W konsoli Google Cloud otwórz Menu > Interfejsy API i usługi > Ekran akceptacji OAuth.

    Otwórz ekran zgody OAuth

  2. W sekcji Typ użytkownika wybierz Wewnętrzny i kliknij Utwórz.
  3. W polu Nazwa aplikacji wpisz Meet REST API Tutorial.
  4. Wypełnij formularz rejestracji aplikacji, a następnie kliknij Zapisz i kontynuuj.
  5. Kliknij Dodaj lub usuń zakresy. Pojawi się panel z listą zakresów dla każdego interfejsu API włączonego w projekcie Google Cloud.
  6. W sekcji Dodaj zakresy ręcznie wklej te zakresy:
    • https://www.googleapis.com/auth/meetings.space.created
  7. Kliknij Dodaj do tabeli.
  8. Kliknij Aktualizuj.
  9. Po wybraniu zakresów wymaganych przez aplikację kliknij Zapisz i kontynuuj.
  10. Jeśli jako typ użytkownika wybierzesz Zewnętrzny, dodaj użytkowników testowych:
    1. W sekcji Użytkownicy testowi kliknij Dodaj użytkowników.
    2. Wpisz swój adres e-mail i pozostałych autoryzowanych użytkowników testowych, a następnie kliknij Zapisz i kontynuuj.
  11. Przejrzyj podsumowanie rejestracji aplikacji. Aby wprowadzić zmiany, kliknij Edytuj. Jeśli rejestracja aplikacji wygląda na prawidłową, kliknij Back to Dashboard (Powrót do panelu).

Utwórz identyfikator klienta

Identyfikator klienta działa jako dane uwierzytelniające aplikacji podczas procesów OAuth 2.0. Aplikacja działa lokalnie, więc utwórz identyfikator klienta na komputerze.

  1. W konsoli Google Cloud kliknij Menu > Interfejsy API i usługi > Dane logowania.

    Otwórz stronę Dane logowania

  2. Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
  3. Kliknij Typ aplikacji > Aplikacja komputerowa.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
  5. Kliknij Utwórz. Pojawi się ekran utworzony przez klienta OAuth zawierający nowy identyfikator i tajny klucz klienta.
  6. Kliknij OK. Nowo utworzone dane logowania pojawią się w sekcji Identyfikatory klienta OAuth 2.0.

Instalowanie bibliotek uwierzytelniania Google

Zainstaluj biblioteki uwierzytelniania Google:

pip install google-auth google-auth-oauthlib

Wykonaj autoryzację

Interfejs Meet REST API wymaga danych logowania użytkownika w postaci tokena dostępu OAuth 2.0. W tej sekcji wdrożysz proces OAuth 2.0, aby zażądać tokena dostępu i tokena odświeżania dla użytkownika.

  1. W katalogu roboczym utwórz plik main.py i dodaj do niego tę zawartość:

    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()
    
  2. Do uruchomienia kodu wymagane są zarówno identyfikator klienta, jak i utworzony wcześniej obiekt tajny. Skopiuj pobrany plik tajnego klienta do katalogu roboczego projektu i zmień jego nazwę na client_secret.json.

  3. Jeśli chcesz sprawdzić, jak działa autoryzacja, uruchom następujące polecenie: Gdy prośba zostanie zatwierdzona, aplikacja poprosi o autoryzację i utworzy plik token.json w katalogu roboczym projektu.

    python3 main.py
    

Dodawanie interfejsu Meet API typu REST

Gdy kod autoryzacji jest już gotowy, czas włączyć i wywołać interfejs Meet REST API.

Włącz interfejsy API

Chociaż ta sekcja dotyczy interfejsu Meet REST API, w tym samouczku używane są również Google Cloud Pub/Sub i Google Workspace Event API.

Konsola Google Cloud

  1. W konsoli Google Cloud włącz interfejsy Google Meet API typu REST, Google Workspace Event API i Google Cloud Pub/Sub.

    Włącz interfejsy API

  2. Sprawdź, czy interfejsy API włączasz w odpowiednim projekcie Cloud, a następnie kliknij Dalej.

  3. Sprawdź, czy włączasz właściwe interfejsy API, a następnie kliknij Włącz.

interfejs wiersza poleceń gcloud

  1. W razie potrzeby ustaw bieżący projekt Cloud na projekt utworzony za pomocą polecenia gcloud config set project:

    gcloud config set project PROJECT_ID
    

    Zastąp PROJECT_ID identyfikatorem projektu utworzonego projektu Cloud.

  2. Włącz interfejsy Google Meet API typu REST, Google Workspace Event 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, wykonaj te czynności:

  1. Uruchom polecenie:

    pip install google-apps-meet
    
  2. Edytuj plik main.py, aby zaimportować klienta:

    from google.apps import meet_v2 as meet
    

Utwórz pokój

Gdy interfejs Meet REST API jest już dostępny, zdefiniuj funkcję tworzenia miejsca spotkań, które można 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)

Subskrybuj wydarzenia

Aby otrzymywać informacje o wydarzeniach związanych z zapleczem konferencyjnym, musisz utworzyć subskrypcję za pomocą interfejsu Google Workspace Event API. Musisz też utworzyć i zasubskrybować temat Google Cloud Pub/Sub służący jako punkt końcowy powiadomień, w którym aplikacja odbiera zdarzenia.

Konfiguracja Google Cloud Pub/Sub

Aby utworzyć i zasubskrybować temat Pub/Sub:

Konsola Google Cloud

  1. W konsoli Google Cloud otwórz Menu > Pub/Sub.

    Otwórz Pub/Sub

    Sprawdź, czy wybrany jest projekt Cloud dla Twojej aplikacji.

  2. Kliknij Utwórz temat i wykonaj te czynności:
    1. Wpisz workspace-events jako nazwę tematu.
    2. Zostaw zaznaczoną opcję Dodaj subskrypcję domyślną.
    3. Kliknij Utwórz. Pełna nazwa tematu ma format projects/{project}/topics/{topic}. Zanotuj tę nazwę – będzie Ci potrzebna w kolejnych krokach.
  3. Przyznaj dostęp z możliwością publikowania wiadomości Pub/Sub w temacie:
    1. W panelu bocznym otwórz kartę Uprawnienia.
    2. Kliknij Dodaj podmiot zabezpieczeń.
    3. W polu Nowe podmioty zabezpieczeń wpisz meet-api-event-push@system.gserviceaccount.com.
    4. W sekcji Przypisz role wybierz Pub/Sub Publisher.
    5. Kliknij Zapisz.

    Aktualizacja uprawnień tematu może potrwać kilka minut.

interfejs wiersza poleceń gcloud

  1. Utwórz temat w projekcie Cloud, uruchamiając to polecenie:
    gcloud pubsub topics create workspace-events

    Dane wyjściowe zawierają pełną nazwę tematu w formacie projects/{project}/topics/{topic}. Zanotuj tę nazwę – będzie Ci potrzebna w kolejnych krokach.

  2. 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ń tematu może potrwać kilka minut.

  3. Utwórz subskrypcję Pub/Sub dla tematu:
    gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAME

    Zastąp następujące elementy:

    • TOPIC_NAME: nazwa tematu utworzonego w poprzednim kroku.

Zanotuj nazwę tematu i upewnij się, że wartość {project} jest identyfikatorem projektu Cloud dla Twojej aplikacji. Nazwa tematu pomoże Ci później utworzyć subskrypcję Google Workspace.

Utwórz konto usługi

Konsola Google Cloud

  1. W konsoli Google Cloud kliknij Menu > Administracja > Konta usługi.

    Otwórz stronę Konta usługi

  2. Kliknij Utwórz konto usługi.
  3. Wpisz szczegóły konta usługi, a potem kliknij Utwórz i kontynuuj.
  4. Opcjonalnie: przypisz role do swojego konta usługi, aby przyznać dostęp do zasobów projektu Google Cloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i odbieranie dostępu do zasobów.
  5. Kliknij Dalej.
  6. 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.
  7. Kliknij Gotowe. Zapisz adres e-mail konta usługi.

interfejs wiersza poleceń gcloud

  1. Utwórz konto usługi:
    gcloud iam service-accounts create meet-event-listener \
      --display-name="meet-event-listener"
  2. Opcjonalnie: przypisz role do swojego konta usługi, aby przyznać dostęp do zasobów projektu Google Cloud. Więcej informacji znajdziesz w artykule Przyznawanie, zmienianie i odbieranie dostępu do zasobów.

Użyj konta usługi

Po utworzeniu konta usługi przyznaj sobie dostęp, aby móc przyjmować to konto.

Konsola Google Cloud

  1. W kolumnie Działania przy nowo utworzonym koncie usługi kliknij > Zarządzaj uprawnieniami.
  2. Kliknij Dodaj klucz > Przyznaj dostęp.
  3. Wpisz swój adres e-mail w sekcji Dodaj podmioty zabezpieczeń.
  4. Jako rolę wybierz Konta usługi > Twórca tokenów konta usługi.
  5. Kliknij Zapisz.

interfejs wiersza poleceń gcloud

  1. Aby dodać to uprawnienie, uruchom gcloud iam service-accounts add-iam-policy-binding, korzystając z 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"
  2. Zaloguj się jako gcloud, aby ustawić domyślne dane uwierzytelniające aplikacji dla konta usługi. Gdy pojawi się prośba o autoryzację, zaloguj się na 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

  1. Użyj pip, aby zainstalować bibliotekę klienta dla Pub/Sub:

    pip install google-cloud-pubsub
    
  2. Następnie edytuj main.py, aby zaimportować klienta:

    from google.cloud import pubsub_v1
    

Tworzenie subskrypcji Google Workspace

Dodaj ten kod do pliku main.py, aby zdefiniować metodę subskrybowania zdarzeń w Meet. Ten kod subskrybuje wszystkie wydarzenia w miejscu spotkań. 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 pobierać i przetwarzać zdarzenia.

Nasłuchiwanie i obsługa zdarzeń

Kontynuuj edytowanie elementu main.py i dodaj ten przykładowy kod. Ten kod wdraża stronę odbierającą i używa interfejsu Google Cloud Pub/Sub API do pobierania zdarzeń w miarę ich udostępniania. Różne 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")

Dokończ kod

Dodaj do main.py ten kod, aby wywoływać metody tworzenia pokoju, subskrybowania zdarzeń i nasłuchiwania. Zaktualizuj stałe TOPIC_NAME i SUBSCRIPTION_NAME, podając własne nazwy tematów i subskrypcji, które wcześniej utworzyłeś.

  1. Dodaj kod do konta 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)
    listen_for_events(subscription_name=SUBSCRIPTION_NAME)
    

    Zastąp następujące elementy:

    • PROJECT_ID: unikalny identyfikator projektu Cloud dla Twojej aplikacji, np. my-sample-project-191923.

    • TOPIC_ID: nazwa tematu Pub/Sub utworzonego w projekcie Cloud.

    • SUBSCRIPTION_ID: nazwa subskrypcji, na przykład workspace-events-sub.

  2. Uruchom program:

    python3 main.py
    

Jeśli program nie był wcześniej uruchamiany, po raz pierwszy pojawi się prośba o autoryzację. Przyznaj dostęp do aplikacji, aby móc wywoływać interfejs Meet REST API. Po uruchomieniu programu powinny zostać wyświetlone dane wyjściowe podobne do tych:

Join the meeting at https://meet.google.com/abc-mnop-xyz

Dołącz do konferencji

Aby wygenerować zdarzenia dla aplikacji, dołącz do konferencji przy użyciu adresu URL wyświetlanego przez aplikację. Po dołączeniu możesz wykonać te działania, aby wywołać zdarzenia:

  • opuścić spotkanie i dołączyć do niego ponownie;
  • Zaproś innych lub dołącz do spotkania przez telefon.
  • Włącz nagrywanie i transkrypcje.

Każde z tych działań generuje zdarzenie, które aplikacja odbiera i loguje w konsoli Google Cloud.

Gdy skończysz, użyj przycisku ctrl-c.

Opcjonalnie: dodatkowe czynności do wypróbowania

aplikacja rejestruje podstawowe informacje o zdarzeniach; Aby kontynuować poznawanie interfejsu Meet REST API, spróbuj zmodyfikować aplikację, aby wykonała te dodatkowe działania.

  • Użyj interfejsu People API, aby pobrać dodatkowe informacje o zalogowanych uczestnikach.
  • Używaj interfejsu Google Drive API do pobierania nagrań i transkrypcji.
  • Zamiast pobierać transkrypcje z Dysku Google, możesz je pobrać przy użyciu metod transkrypcji uporządkowanych w interfejsie Meet REST API.

Opcjonalnie: wyczyść dane

Aby uniknąć obciążenia konta konsoli Google Cloud opłatami za zasoby zużyte w tym samouczku, zalecamy usunięcie wszystkich utworzonych zasobów i projektów.

Aby usunąć subskrypcję:

Konsola

  1. W konsoli Google Cloud otwórz Menu > Pub/Sub > Subskrypcje

    Otwórz Subskrypcje

  2. Wybierz subskrypcję i kliknij Więcej działań.

  3. Kliknij Usuń. Pojawi się okno Usuń subskrypcję.

  4. Kliknij Usuń.

interfejs wiersza poleceń gcloud

  1. Aby usunąć subskrypcję:

    gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
    

Aby usunąć temat:

Konsola

  1. W konsoli Google Cloud kliknij Menu > Pub/Sub > Tematy.

    Otwórz Topics API

  2. Wybierz temat i kliknij Więcej czynności.

  3. Kliknij Usuń. Pojawi się okno Usuń temat.

  4. Wpisz delete, a następnie kliknij Usuń.

interfejs wiersza poleceń gcloud

  1. Usuń temat:

    gcloud pubsub topics delete TOPIC_NAME
    

Aby usunąć projekt:

Konsola

  1. W konsoli Google Cloud otwórz stronę Zarządzanie zasobami. Kliknij Menu > Administracja > Zarządzaj zasobami.

    Otwórz menedżera zasobów

  2. Na liście projektów wybierz projekt, który chcesz usunąć, a następnie kliknij Usuń .
  3. W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby usunąć projekt.

interfejs wiersza poleceń gcloud

  1. Aby usunąć projekt, użyj polecenia gcloud projects delete:

    gcloud projects delete PROJECT_ID