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

W tym samouczku pokazujemy, jak używać interfejsu Google Meet API typu REST wraz z Interfejs Google Workspace Events API i Google Cloud Pub/Sub do obserwowania zdarzeń i reagowania na nie w sali konferencyjnej Meet. Przykładowa aplikacja rejestruje, kiedy rozpoczęcia i zakończenia rozmowy wideo, dołączenia lub opuszczenia rozmowy wideo dostępne są wygenerowane artefakty spotkania.

Zamiast subskrybowania konkretnej sali konferencyjnej możesz zasubskrybować użytkownika Meet, aby odbierać wydarzenia z dowolnego miejsca spotkań, których właścicielem lub organizacją jest użytkownik. Więcej informacji: Subskrybowanie wydarzeń w Google Meet znajdziesz w dokumentacji interfejsu Google Workspace Events API.

Wymagania wstępne

Jeśli chcesz włączyć któreś z tych wymagań wstępnych w organizacji, zapytaj administrator Google Workspace, aby je włączyć:

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 środowiska wirtualnego Pythona

Aby utworzyć i aktywować nowy obiekt wirtualny , uruchom to w terminalu.

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

Utwórz projekt Google Cloud

Google Cloud Console

  1. W konsoli Google Cloud otwórz menu . > Administracja Administracja > Utwórz projekt.

    Otwórz stronę Tworzenie projektu

  2. W polu Project Name (Nazwa projektu) wpisz opisową nazwę projektu.

    Opcjonalnie: aby edytować identyfikator projektu, kliknij Edytuj. Identyfikatora projektu nie można zmienić po jego utworzeniu, wybierz więc identyfikator, który odpowiada potrzebom od początku w projektach AI.

  3. W polu Lokalizacja kliknij Przeglądaj, aby wyświetlić potencjalne lokalizacje dla w projektach AI. Następnie kliknij Wybierz.
  4. Kliknij Utwórz. Konsola Google Cloud otworzy stronę Panel, a projekt zostanie utworzony. w ciągu kilku minut.

interfejs wiersza poleceń gcloud

W jednym z tych środowisk programistycznych uzyskaj dostęp do Google Cloud Interfejs wiersza poleceń (`gcloud`):

  • Cloud Shell: korzystanie z terminala online za pomocą interfejsu wiersza poleceń gcloud. już skonfigurowane, aktywuj Cloud Shell.
    Aktywuj Cloud Shell
  • Interfejs lokalny: aby korzystać z lokalnego środowiska programistycznego, zainstaluj i inicjuj interfejs wiersza poleceń gcloud.
    Aby utworzyć projekt Google 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łącz płatności za projekt Google Cloud

Google Cloud Console

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

    Otwórz Płatności za moje projekty

  2. W sekcji Wybierz organizację wybierz organizację powiązaną z: Twojemu projektowi Google Cloud.
  3. W wierszu projektu otwórz menu Działania. (), kliknij Zmień ustawienia płatności i wybierz konto rozliczeniowe Cloud.
  4. Kliknij Skonfiguruj 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 dla Projekt Cloud, dla którego chcesz włączyć płatności.
    • BILLING_ACCOUNT_ID to identyfikator konta rozliczeniowego, z którym chcesz połączyć konto projekt Google Cloud.

Konfigurowanie uwierzytelniania i autoryzacji

Uwierzytelnianie i autoryzacja umożliwiają aplikacji dostęp do zasobów interfejsu API REST Meet. Wywoływanie interfejsu Meet API REST wymaga autoryzacji użytkownika. Z tej sekcji dowiesz się, jak skonfigurować dane logowania użytkownika i poprosić o autoryzację.

Skonfiguruj ekran zgody OAuth i wybierz zakresy

W poniższych krokach sugerowane są informacje o obiektach zastępczych do skonfigurowania ekranu akceptacji OAuth dla do aplikacji. Zanim opublikujesz aplikację na zewnątrz, zaktualizuj te informacje.

  1. W konsoli Google Cloud otwórz menu . > Interfejsy API i Usługi > Ekran zgody OAuth.

    Otwórz ekran zgody OAuth

  2. W sekcji Typ użytkownika wybierz Wewnętrzny, a potem kliknij Utwórz.
  3. W polu Nazwa aplikacji wpisz Meet REST API Tutorial.
  4. Wypełnij formularz rejestracji aplikacji, a potem kliknij Zapisz i kontynuuj.
  5. Kliknij Dodaj lub usuń zakresy. Pojawi się panel z listą zakresów dostępu do 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 wymaganych zakresów 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 innych autoryzowanych użytkowników testowych, a następnie kliknij Zapisz i kontynuuj.
  11. Sprawdź podsumowanie rejestracji aplikacji. Aby wprowadzić zmiany, kliknij Edytuj. Jeśli aplikacja z rejestracji wszystko jest w porządku, kliknij Back to Dashboard (Powrót do panelu).

Utwórz identyfikator klienta

Identyfikator klienta działa jako dane logowania dla aplikacji podczas OAuth 2.0 procesu. Aplikacja działa lokalnie, więc utwórz identyfikator klienta na komputer.

  1. W konsoli Google Cloud otwórz Menu > Interfejsy API i Usługi > Dane logowania.

    Przejdź do danych logowania

  2. Kliknij Utwórz dane logowania > Identyfikator klienta OAuth.
  3. Kliknij Typ aplikacji > Aplikacja na komputer.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. Kliknij Utwórz. Pojawi się ekran utworzonego klienta OAuth z nowym identyfikatorem klienta i tajnym kluczem 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 formacie OAuth 2.0 token dostępu. W tej sekcji wdrożysz proces OAuth 2.0, aby wysyłać żądania token dostępu i token odświeżania dla użytkownika.

  1. W katalogu roboczym utwórz plik main.py i dodaj: 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. Aby uruchomić kod, zarówno identyfikator klienta, jak i utworzony wcześniej obiekt tajny są Skopiuj pobrany plik z tajnymi kluczami klienta do działającego projektu i zmień nazwę na client_secret.json.

  3. Jeśli chcesz sprawdzić, jak działa autoryzacja, uruchom następujące polecenie. Aplikacja prosi o autoryzację i tworzy plik token.json w katalogu roboczym projektu.

    python3 main.py

Dodawanie interfejsu API REST Meet

Po wprowadzeniu kodu autoryzacji czas włączyć i wywołać metodę Poznaj interfejs API REST.

Włączanie interfejsów API

Chociaż ta sekcja dotyczy interfejsu Meet REST API, w tym samouczku używamy też Google Cloud Pub/Sub i Google Workspace Events API.

Google Cloud Console

  1. W konsoli Google Cloud włącz interfejs API Google Meet typu REST, interfejs API Google Workspace Events oraz Google Cloud Pub/Sub.

    Włącz Interfejsy API

  2. Sprawdź, czy interfejsy API są włączone we właściwym Projekt Cloud, a następnie kliknij Dalej.

  3. Sprawdź, czy włączasz odpowiednie interfejsy API, a potem kliknij Włącz.

interfejs wiersza poleceń gcloud

  1. 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 utworzony przez Ciebie projekt Cloud.

  2. włączyć interfejs Google Meet API typu REST, Google Workspace Events API; 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

Teraz, gdy interfejs Meet REST API jest dostępny, zdefiniuj funkcję, która utworzy salę spotkań, do której można się zapisać.

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 dotyczących sali konferencyjnej, utwórz subskrypcję za pomocą Interfejs Google Workspace Events API. Musisz też utworzyć temat Google Cloud Pub/Sub i subskrybować go. Temat ten będzie pełnił rolę punktu końcowego powiadomień, w którym aplikacja będzie otrzymywać zdarzenia.

Konfigurowanie Google Cloud Pub/Sub

Aby utworzyć i zasubskrybować temat Pub/Sub:

Google Cloud Console

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

    Otwórz stronę Pub/Sub

    Upewnij się, że wybrany jest projekt Google Cloud dla Twojej aplikacji.

  2. Kliknij Utwórz temat i wykonaj :
    1. Wpisz workspace-events jako nazwę tematu.
    2. Pozostaw zaznaczone pole Dodaj domyślną subskrypcję.
    3. Kliknij Utwórz. Pełna nazwa tematu jest sformatowana w ten sposób: projects/{project}/topics/{topic} Zanotuj tę nazwę, aby użyć jej w kolejnych krokach.
  3. Przyznaj dostęp do publikowania wiadomości Pub/Sub w temacie:
    1. W panelu bocznym otwórz kartę Uprawnienia.
    2. Kliknij Dodaj podmiot zabezpieczeń.
    3. W sekcji Nowe podmioty zabezpieczeń wpisz meet-api-event-push@system.gserviceaccount.com.
    4. W sekcji Przypisywanie ról 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 sformatowaną jako projects/{project}/topics/{topic}. Zanotuj tej nazwy do wykorzystania w kolejnych krokach.

  2. Przyznawanie dostępu 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'

    Zmiana uprawnień do 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ścią w polu {project} jest Identyfikator projektu Cloud dla Twojej aplikacji. Nazwa tematu służy do tworzenia Subskrypcja Google Workspace później.

Tworzenie konta usługi

Google Cloud Console

  1. W konsoli Google Cloud otwórz menu . > Administracja 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 przyjęciem tożsamości konta usługi.
  7. Kliknij Gotowe. Zanotuj 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 umożliwiający przyjęcie tożsamości konta usługi.

Google Cloud Console

  1. W kolumnie Działania obok nowo utworzonego konta 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. Wybierz Service accounts (Konta usługi) > Service Account Token Creator (Twórca tokenów konta usługi). .
  5. Kliknij Zapisz.
  6. Wróć do terminala i zaloguj się za pomocą adresu gcloud, aby ustawić domyślne dane uwierzytelniające aplikacji na konta usługi. Gdy pojawi się prośba o autoryzację, zaloguj się na to samo konto, którego użyto w poprzednich krokach.
    gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL

interfejs wiersza poleceń gcloud

  1. Aby dodać uprawnienie, uruchom gcloud iam service-accounts add-iam-policy-binding uż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"
  2. Zaloguj się, aby ustawić domyślne dane uwierzytelniające aplikacji na konta usługi. Gdy pojawi się prośba o autoryzację, zaloguj się, używając tego samego koncie użytym 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 zmodyfikuj 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 Wydarzenia w Meet. Ten kod subskrybuje wszystkie wydarzenia dotyczące spotkania kosmosu. Po zasubskrybowaniu wydarzenia 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 zdarzeń i obsługa zdarzeń

Kontynuuj edycję main.py i dodaj ten przykładowy kod. Ten kod implementuje stronę odbierającą i wykorzystuje interfejs Google Cloud Pub/Sub API do pobierania wydarzenia 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: subskrybować wydarzenia i nasłuchiwać. Zmień stałe TOPIC_NAMESUBSCRIPTION_NAME na utworzone wcześniej nazwy tematów i subskrypcji.

  1. Dodaj kod do 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: aplikacji, np. my-sample-project-191923.

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

    • SUBSCRIPTION_ID: nazwa subskrypcji, np. jako workspace-events-sub.

  2. Uruchamianie programu:

    python3 main.py

Jeśli program nie został wcześniej uruchomiony, wyświetli się prośba o autoryzację za pierwszym razem. Przyznaj aplikacji dostęp, aby móc wywoływać interfejs 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łącz do konferencji

Aby wygenerować zdarzenia dla aplikacji, dołącz do konferencji za pomocą adresu URL wyświetlanych przez aplikację. Po dołączeniu możesz wykonać te czynności, aby wywołać zdarzenia:

  • Opuść spotkanie i dołącz do niego ponownie.
  • Zaproś innych lub dołącz przez telefon.
  • Włącz nagrywanie i transkrypcję.

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

Gdy skończysz, przerwij program, używając ctrl-c.

Opcjonalnie: dodatkowe kroki do wypróbowania

Aplikacja rejestruje podstawowe informacje o wydarzeniach. Aby dalej poznawać Poznaj interfejs API REST. Zmodyfikuj aplikację, aby wykonać te dodatkowe .

Opcjonalnie: wyczyść

Aby uniknąć obciążenia konta konsoli Google Cloud opłatami za zasoby użyte w tym samouczku, zalecamy wyczyszczenie wszystkich zasobów i projektów Utworzono.

Aby usunąć subskrypcję:

Konsola

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

    Otwórz stronę 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. Usuń subskrypcję:

    gcloud pubsub subscriptions delete SUBSCRIPTION_NAME

Aby usunąć temat:

Konsola

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

    Otwórz Tematy

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

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

  4. Wpisz delete i 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 > Uprawnienia Administracja > Zarządzaj zasobami.

    Otwórz menedżera zasobów

  2. Na liście projektów wybierz projekt do usunięcia, a następnie kliknij Usuń .
  3. W oknie wpisz identyfikator projektu i kliknij Wyłącz, aby go usunąć. nad projektem.

interfejs wiersza poleceń gcloud

  1. Aby usunąć projekt, użyj narzędzia gcloud projects usuń polecenie:

    gcloud projects delete PROJECT_ID