Observa reuniones con Python y la API de REST de Google Meet

En este instructivo, se muestra cómo usar la API de REST de Google Meet junto con las La API de Google Workspace Events y Google Cloud Pub/Sub para observar y reaccionar eventos de reuniones. La aplicación de ejemplo registra cuándo comienzan y finalizan las conferencias, cuando los participantes se unen o se van, y cuando se generan disponibles.

Para obtener más información sobre cómo trabajar con eventos, consulta Suscríbete a Google Meet. eventos en la API de Google Workspace Events en la documentación de Google Cloud.

Requisitos previos

Si necesitas activar alguno de estos requisitos previos para tu organización, pregunta tu administrador de Google Workspace para activarlos:

Prepara el entorno

En esta sección, se muestra cómo crear y configurar tu entorno local y la proyecto de Google Cloud para este instructivo.

Crea un directorio de trabajo y un entorno virtual de Python

Para crear y activar una nueva instancia entorno, ejecuta el siguiente comando: comandos en tu terminal.

Linux/macOS

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

Windows (símbolo del sistema)

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

Crea un proyecto de Google Cloud

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > IAM y Administrador > Crear un proyecto.

    Ir a Crear un proyecto

  2. En el campo Nombre del proyecto, ingresa un nombre descriptivo para tu proyecto.

    Opcional: Para editar el ID del proyecto, haz clic en Editar. No se puede cambiar el ID del proyecto una vez creado el proyecto, así que elige un ID que se adapte a tus necesidades durante el ciclo de vida del en un proyecto final.

  3. En el campo Ubicación, haz clic en Explorar para mostrar las posibles ubicaciones de tu en un proyecto final. Luego, haga clic en Seleccionar.
  4. Haz clic en Crear. La consola de Google Cloud navega a la página Panel y se crea tu proyecto en unos minutos.

gcloud CLI

En uno de los siguientes entornos de desarrollo, accede a la API de CLI (`gcloud`):

  • Cloud Shell: Para usar una terminal en línea con gcloud CLI ya configurado, activa Cloud Shell.
    Activar Cloud Shell
  • Local Shell: Para usar un entorno de desarrollo local, instalar y inicializar con gcloud CLI.
    Para crear un proyecto de Cloud, usa el comando “gcloud projects create”:
    gcloud projects create PROJECT_ID
    Reemplaza PROJECT_ID mediante la configuración del ID del proyecto que deseas crear.

Habilita la facturación para el proyecto de Google Cloud

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Facturación. Haz clic en Menú > Facturación > Mis proyectos.

    Ir a Facturación para Mis proyectos

  2. En Selecciona una organización, elige la organización asociada con tu proyecto de Google Cloud.
  3. En la fila del proyecto, abre el menú Acciones. (), haz clic en Cambiar facturación y elige Cuenta de Facturación de Cloud.
  4. Haz clic en Establecer cuenta.

gcloud CLI

  1. Para enumerar las cuentas de facturación disponibles, ejecuta el siguiente comando:
    gcloud billing accounts list
  2. Vincula una cuenta de facturación con un proyecto de Google Cloud:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    Reemplaza lo siguiente:

    • PROJECT_ID es el ID del proyecto de la Proyecto de Cloud para el que quieres habilitar la facturación.
    • BILLING_ACCOUNT_ID es el ID de la cuenta de facturación que se vinculará el proyecto de Google Cloud.

Configura la autenticación y la autorización

La autenticación y la autorización permiten que la app acceda a la API de REST de Meet de Google Cloud. Se requiere la autorización del usuario para llamar a la API de REST de Meet. En esta sección, se explica cómo configurar credenciales de usuario y solicitar autorización.

Configura la pantalla de consentimiento de OAuth y elige los permisos

En los siguientes pasos, se sugiere información sobre el marcador de posición para configurar la pantalla de consentimiento de OAuth para tu app. Antes de publicar la app de forma externa, actualiza esta información.

  1. En la consola de Google Cloud, ve a Menú > APIs y Servicios > Pantalla de consentimiento de OAuth.

    Ir a la pantalla de consentimiento de OAuth

  2. En Tipo de usuario, selecciona Interno y, luego, haz clic en Crear.
  3. En Nombre de la app, ingresa Meet REST API Tutorial.
  4. Completa el formulario de registro de apps y, luego, haz clic en Guardar y continuar.
  5. Haz clic en Add or Remove Scopes. Aparecerá un panel con una lista de alcances para cada API que habilitaste en tu proyecto de Google Cloud.
  6. En Agregar permisos de forma manual, pega los siguientes alcances:
    • https://www.googleapis.com/auth/meetings.space.created
  7. Haz clic en Add to Table.
  8. Haz clic en Actualizar.
  9. Después de seleccionar los permisos necesarios de tu app, haz clic en Save and Continue.
  10. Si seleccionaste Externo como tipo de usuario, agrega usuarios de prueba:
    1. En Usuarios de prueba, haz clic en Agregar usuarios.
    2. Ingresa tu dirección de correo electrónico y los otros usuarios de prueba autorizados. Luego, haz clic en Guardar y continuar
  11. Revisa el resumen del registro de tu app. Para realizar cambios, haz clic en Editar. Si la aplicación el registro parece estar bien, haz clic en Volver al panel.

Crea un ID de cliente

El ID de cliente actúa como credenciales para tu aplicación durante la versión OAuth 2.0. a los flujos de trabajo. Dado que la aplicación se ejecuta de forma local, crea un ID de cliente de escritorio.

  1. En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales > ID de cliente de OAuth.
  3. Haz clic en Tipo de aplicación > Aplicación para computadoras.
  4. En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
  5. Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
  6. Haz clic en Aceptar. La credencial nueva aparece en ID de cliente de OAuth 2.0.

Instala las bibliotecas de autenticación de Google

Instala las bibliotecas de autenticación de Google:

pip install google-auth google-auth-oauthlib

Ejecutar autorización

La API de REST de Meet requiere credenciales del usuario con el formato de OAuth 2.0 token de acceso. En esta sección, implementarás el flujo de OAuth 2.0 para solicitar una de acceso y un token de actualización para el usuario.

  1. En tu directorio de trabajo, crea el archivo main.py y agrega lo siguiente: contenidos:

    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. Para ejecutar el código, tanto el ID de cliente como el secreto creado anteriormente se como en los productos necesarios. Copia el archivo de secretos del cliente descargado en el proyecto en funcionamiento. y cámbiale el nombre a client_secret.json.

  3. Si quieres probar cómo funciona la autorización, ejecuta el siguiente comando. La app solicita autorización y crea un archivo token.json en el archivo directorio de trabajo del proyecto después de que se apruebe la solicitud.

    python3 main.py
    

Agrega la API de REST de Meet

Ahora que el código de autorización está completo, es momento de habilitar y llamar al Conoce la API de REST.

Habilitación de las API

Si bien esta sección se enfoca en la API de REST de Meet, en este instructivo también se usa Google Cloud Pub/Sub y la API de Google Workspace Events.

Consola de Google Cloud

  1. En la consola de Google Cloud, habilita la API de REST de Google Meet, el la API de Google Workspace Events y Google Cloud Pub/Sub.

    Habilitar las API

  2. Confirma que estás habilitando las APIs en la ubicación correcta de Google Cloud y haz clic en Siguiente.

  3. Confirma que estás habilitando las APIs correctas y, luego, haz clic en Habilitar.

gcloud CLI

  1. Si es necesario, configura el proyecto de Cloud actual con el proyecto que creado con el comando gcloud config set project:

    gcloud config set project PROJECT_ID
    

    Reemplaza PROJECT_ID por el ID del proyecto de de Google Cloud que creaste.

  2. Habilitar la API de REST de Google Meet, la API de Google Workspace Events y Google Cloud Pub/Sub con el comando gcloud services enable:

    gcloud services enable meet.googleapis.com workspaceevents.googleapis.com pubsub.googleapis.com
    

Instala la biblioteca cliente de la API de REST de Meet

Sigue estos pasos para instalar la biblioteca cliente de la API de REST de Meet:

  1. Ejecuta el siguiente comando:

    pip install google-apps-meet
    
  2. Edita el archivo main.py para importar el cliente:

    from google.apps import meet_v2 as meet
    

Crea un espacio

Ahora que está disponible la API de REST de Meet, define una función para crear una sala de reuniones a la que se pueda suscribir.

Edita main.py y agrega lo siguiente:

def create_space() -> meet.Space:
    """Create a meeting space."""
    client = meet.SpacesServiceClient(credentials=USER_CREDENTIALS)
    request = meet.CreateSpaceRequest()
    return client.create_space(request=request)

Suscríbete a eventos

Para recibir eventos sobre una sala de reuniones, crea una suscripción con el API de Google Workspace Events. También debes crear y suscribirte a un tema de Google Cloud Pub/Sub que funciona como el extremo de notificación donde la aplicación recibe los eventos.

Configura Google Cloud Pub/Sub

Para crear un tema de Pub/Sub y suscribirte a él, haz lo siguiente:

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > Pub/Sub.

    Ir a Pub/Sub

    Asegúrate de que esté seleccionado el proyecto de Cloud para tu app.

  2. Haz clic en Crear tema y haz lo siguiente lo siguiente:
    1. Ingresa workspace-events como el nombre del tema.
    2. Deja seleccionada la opción Agregar una suscripción predeterminada.
    3. Haz clic en Crear. El nombre completo de tu tema tiene el siguiente formato: projects/{project}/topics/{topic} Crear una nota de este nombre para usarlo en pasos posteriores.
  3. Otorga acceso para publicar mensajes de Pub/Sub en tu tema:
    1. En el panel lateral, abre la Permisos.
    2. Haz clic en Agregar principal.
    3. En Principales nuevas, ingresa [email protected].
    4. En Asignar roles, selecciona Pub/Sub Publisher.
    5. Haz clic en Guardar.

    La actualización de los permisos de tu tema puede tardar unos minutos.

gcloud CLI

  1. En tu proyecto de Cloud, ejecuta el siguiente comando para crear un tema:
    gcloud pubsub topics create workspace-events

    El resultado muestra el nombre completo del tema, con el siguiente formato: projects/{project}/topics/{topic} Crear una nota de este nombre para usarlo en pasos posteriores.

  2. Otorga acceso para publicar mensajes en tu tema:
     gcloud pubsub topics add-iam-policy-binding workspace-events --member='serviceAccount:[email protected]' --role='roles/pubsub.publisher'

    La actualización de los permisos de tu tema puede tardar unos minutos.

  3. Crea una suscripción a Pub/Sub para el tema:
    gcloud pubsub subscriptions create workspace-events-sub --topic=TOPIC_NAME

    Reemplaza lo siguiente:

    • TOPIC_NAME: Es el nombre del tema que creaste. en el paso anterior.

Toma nota del nombre del tema y asegúrate de que el valor de {project} sea el ID del proyecto de Cloud de tu app. Usarás el nombre del tema para crear la suscripción a Google Workspace más adelante.

Crea una cuenta de servicio

Consola de Google Cloud

  1. En la consola de Google Cloud, ve a Menú > IAM y Administrador > Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Haga clic en Crear cuenta de servicio.
  3. Completa los detalles de la cuenta de servicio y, luego, haz clic en Crear y continuar.
  4. Opcional: Asigna roles a tu cuenta de servicio para otorgar acceso a los recursos de tu proyecto de Google Cloud. Para obtener más detalles, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.
  5. Haz clic en Continuar.
  6. Opcional: Ingresa los usuarios o grupos que puedan administrar y realizar acciones con esta cuenta de servicio. Para obtener más detalles, consulta Administra el robo de identidad de cuentas de servicio.
  7. Haz clic en Listo. Toma nota de la dirección de correo electrónico de la cuenta de servicio.

gcloud CLI

  1. Crea la cuenta de servicio:
    gcloud iam service-accounts create meet-event-listener \
      --display-name="meet-event-listener"
  2. Opcional: Asigna roles a tu cuenta de servicio para otorgar acceso a los recursos de tu proyecto de Google Cloud. Para obtener más detalles, consulta Cómo otorgar, cambiar y revocar el acceso a los recursos.

Usa la cuenta de servicio

Después de crear la cuenta de servicio, otórgate acceso para usar la identidad del cuenta de servicio.

Consola de Google Cloud

  1. En la columna Acciones de la cuenta de servicio recién creada, haz clic en > Administrar permisos.
  2. Haz clic en Agregar clave. > Otorgar acceso.
  3. Ingresa tu dirección de correo electrónico en Agregar principales.
  4. Selecciona Cuentas de servicio > Creador de tokens de cuenta de servicio. como el rol.
  5. Haz clic en Guardar.
  6. Regresa a tu terminal y accede con gcloud para establecer las credenciales predeterminadas de la aplicación en la cuenta de servicio. Cuando se te solicite autorización, accede con la misma que se usó en los pasos anteriores.
    gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL

gcloud CLI

  1. Para agregar el permiso, ejecuta gcloud iam service-accounts add-iam-policy-binding. con la dirección de correo electrónico de la cuenta de servicio y el usuario.
    gcloud iam service-accounts add-iam-policy-binding \
      SERVICE_ACCOUNT_EMAIL \
      --member="user:YOUR_EMAIL \
      --role="roles/iam.serviceAccountTokenCreator"
  2. Accede para establecer las credenciales predeterminadas de la aplicación para el cuenta de servicio. Cuando se te solicite autorización, accede con la misma que se usó en los pasos anteriores.
    gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL

Instala la biblioteca cliente de Pub/Sub

  1. Usa pip para instalar la biblioteca cliente de Pub/Sub:

    pip install google-cloud-pubsub
    
  2. Luego, edita main.py para importar el cliente:

    from google.cloud import pubsub_v1
    

Crea la suscripción a Google Workspace

Agrega el siguiente código a main.py para definir un método de suscripción a de Google Meet. Este código se suscribe a todos los eventos de una reunión espacio. Cuando te suscribes, los eventos se publican en el tema de 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

A continuación, agrega el código correspondiente para extraer y procesar los eventos.

Escucha y controla eventos

Sigue editando main.py y agrega el siguiente código de muestra. Este código implementa el lado receptor y usa la API de Google Cloud Pub/Sub para extraer eventos a medida que estén disponibles. Los distintos métodos de controlador imprimen información sobre los eventos correspondientes.

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")

Finaliza el código

Agrega el siguiente código a main.py para llamar a los métodos y crear el espacio. suscribirte a eventos y escuchar. Actualiza el TOPIC_NAME y SUBSCRIPTION_NAME con tu propio tema y los nombres de suscripciones que hayas crear.

  1. Agrega el código a 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)
    

    Reemplaza lo siguiente:

    • PROJECT_ID: El ID único del proyecto de Cloud para tu app, como my-sample-project-191923.

    • TOPIC_ID: Es el nombre del tema de Pub/Sub. crear en tu proyecto de Cloud.

    • SUBSCRIPTION_ID: Es el nombre de tu suscripción, como como workspace-events-sub.

  2. Ejecuta el programa:

    python3 main.py
    

Si no ejecutaste el programa con anterioridad, te solicitará autorización. primera vez. Otórgale acceso a la aplicación para llamar a la API de REST de Meet. Una vez que el programa se ejecute correctamente, deberías ver un resultado similar al siguiente:

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

Únete a la conferencia

Si quieres generar eventos para la aplicación, únete a la conferencia con la URL que muestra la aplicación. Después de unirte, puedes probar estas acciones para eventos de activación:

  • Abandona la reunión y vuelve a unirte.
  • Invita a otras personas o llama para entrar a la reunión con tu teléfono.
  • Habilitar las grabaciones y transcripciones

Cada una de estas actividades genera un evento que la aplicación recibe y en la consola de Google Cloud.

Usa ctrl-c para interrumpir el programa cuando termines.

Pasos adicionales que puedes probar (opcional)

La app registra detalles básicos sobre los eventos. Para seguir explorando Meet, usa la API de REST, modifica la aplicación para realizar estas acciones acciones.

Opcional: Limpieza

Para evitar que se apliquen cargos a tu cuenta de la consola de Google Cloud por los recursos que usaste en este instructivo, te recomendamos que limpies todos los recursos y proyectos crear.

Para borrar la suscripción, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a Menú > Pub/Sub > Suscripciones

    Ir a Suscripciones

  2. Selecciona la suscripción y haz clic en Más acciones.

  3. Haz clic en Borrar. Aparecerá la ventana Borrar suscripción.

  4. Haz clic en Borrar.

gcloud CLI

  1. Borra la suscripción:

    gcloud pubsub subscriptions delete SUBSCRIPTION_NAME
    

Para borrar el tema, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a Menú > Pub/Sub > Temas

    Ir a temas

  2. Selecciona el tema y haz clic en Más acciones.

  3. Haz clic en Borrar. Aparecerá la ventana Borrar tema.

  4. Ingresa delete y, luego, haz clic en Borrar.

gcloud CLI

  1. Borra el tema:

    gcloud pubsub topics delete TOPIC_NAME
    

Para borrar el proyecto, haz lo siguiente:

Console

  1. En la consola de Google Cloud, ve a la página Administrar recursos. Haz clic en Menú > IAM y Administrador > Administrar recursos.

    Ir a Resource Manager

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borra .
  3. En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo. el proyecto.

gcloud CLI

  1. Para borrar un proyecto, usa el comando de gcloud projects borrar :

    gcloud projects delete PROJECT_ID