Cómo actualizar o renovar una suscripción a Google Workspace

En esta página, se explica cómo renovar una suscripción a Google Workspace con el subscriptions.update() método. Usa este método para actualizar el tiempo de vencimiento de una suscripción, incluida la renovación de la suscripción por el tiempo de vencimiento máximo posible, o para actualizar la lista de tipos de eventos que se recibirán sobre el recurso de destino.

Apps Script

  • Un proyecto de Apps Script:
    • Usa tu proyecto de Google Cloud en lugar del predeterminado que crea Apps Script automáticamente.
    • Para todos los alcances que agregaste para configurar la pantalla de consentimiento de OAuth, también debes agregar los alcances al archivo appsscript.json en tu proyecto de Apps Script. Por ejemplo, si especificaste el alcance chat.messages, agrega lo siguiente:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Habilita el Google Workspace Events servicio avanzado.

Python

  • Python 3.6 o una versión superior
  • La herramienta de administración de paquetes pip
  • Las bibliotecas cliente de Google más recientes para Python. Para instalarlas o actualizarlas, ejecuta el siguiente comando en tu interfaz de línea de comandos:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

Renueva una suscripción a Google Workspace

En esta sección, usa el método subscriptions.update() de la API de Google Workspace Events para renovar una suscripción a su tiempo de vencimiento máximo. Para especificar el tiempo de vencimiento máximo, actualiza el ttl campo del Subscription recurso a 0.

El tiempo de vencimiento máximo depende de los datos de recursos que se incluyan en la carga útil del evento. Para obtener más información sobre los tiempos de vencimiento, consulta Datos de eventos para eventos de Google Workspace.

Para renovar una suscripción a Google Workspace, haz lo siguiente:

Apps Script

  1. En tu proyecto de Apps Script, crea un archivo de secuencia de comandos nuevo llamado updateSubscription y agrega el siguiente código:

    function updateSubscription() {
      // The name of the subscription to update.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.patch({
        ttl: '0s',
      }, name);
      console.log(response);
    }
    

    Reemplaza lo siguiente:

    • SUBSCRIPTION_ID: Es el ID de la suscripción. Para obtener el ID, puedes usar cualquiera de las siguientes opciones:
      • El valor del uid campo.
      • El ID del nombre del recurso representado en el name campo. Por ejemplo, si el nombre del recurso es subscriptions/subscription-123, usa subscription-123.
  2. Para actualizar la suscripción a Google Workspace, ejecuta la función updateSubscription en tu proyecto de Apps Script.

Python

  1. En tu directorio de trabajo, crea un archivo llamado update_subscription.py y agrega el siguiente código:

    """Update subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
      )
    
    BODY = {
        'ttl': {'seconds': 0},
    }
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = (
        service.subscriptions()
        .patch(name=NAME, updateMask='ttl', body=BODY)
        .execute()
    )
    print(response)
    

    Reemplaza lo siguiente:

    • SCOPES: Uno o más alcances de OAuth que admiten cada tipo de evento para la suscripción. Se formatea como un array de cadenas. Para enumerar varios alcances, sepáralos con comas. Por ejemplo, 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.
    • SUBSCRIPTION_ID: Es el ID de la suscripción. Para obtener el ID, puedes usar cualquiera de las siguientes opciones:
      • El valor del uid campo.
      • El ID del nombre del recurso representado en el name campo. Por ejemplo, si el nombre del recurso es subscriptions/subscription-123, usa subscription-123.
  2. En tu directorio de trabajo, asegúrate de haber almacenado tus credenciales de ID de cliente de OAuth y de haber nombrado el archivo credentials.json. El ejemplo de código usa este archivo JSON para autenticarse en Google Workspace y obtener credenciales de usuario. Para obtener instrucciones, consulta Crea credenciales de ID de cliente de OAuth.

  3. Para actualizar la suscripción a Google Workspace, ejecuta lo siguiente en tu terminal:

    python3 update_subscription.py
La API de Google Workspace Events muestra una operación de larga duración que contiene la instancia del recurso Subscription.

Para obtener detalles sobre el recurso Subscription actualizado, usa el operations.get() método y especifica el recurso Operation que se muestra en tu solicitud subscriptions.update(). De lo contrario, si especificas un recurso Operation de una versión anterior de la suscripción, la respuesta estará vacía.

Actualiza o renueva una suscripción como una app de Google Chat

Puedes actualizar o renovar una suscripción a eventos de Chat como una app de Chat en lugar de como un usuario. El proceso es similar, excepto por lo siguiente:

  1. En lugar de la autenticación de usuarios, autentícate como una app de Chat con la aprobación única del administrador.

  2. Especifica los alcances de autorización que permiten que la app de Chat se suscriba a eventos de Chat. Estos alcances de autorización siempre comienzan con chat.app y, además, incluyen lo siguiente:

    • https://www.googleapis.com/auth/chat.app.memberships: Suscríbete a los eventos de miembros del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: Suscríbete a los eventos de miembros del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: Suscríbete a los eventos de mensajes del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.spaces: Suscríbete a los eventos del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: Suscríbete a los eventos del espacio de Chat.

Escribe una secuencia de comandos que llame a la API de Google Workspace Events

En el siguiente ejemplo de código, se actualiza la suscripción a Google Workspace de una app de Chat:

Python

  """Update subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = [SCOPES]

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1beta',
      credentials=CREDENTIALS,
  )

  BODY = {
      'ttl': {'seconds': 0},
  }
  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = (
      service.subscriptions()
      .patch(name=NAME, updateMask='ttl', body=BODY)
      .execute()
  )
  print(response)

Reemplaza lo siguiente:

  • SCOPES: Especifica los alcances de autorización que permiten que la app de Chat se suscriba a eventos de Chat. Estos alcances de autorización siempre comienzan con chat.app y, además, incluyen lo siguiente:

    • https://www.googleapis.com/auth/chat.app.memberships: Suscríbete a los eventos de miembros del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: Suscríbete a los eventos de miembros del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: Suscríbete a los eventos de mensajes y reacciones del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.spaces: Suscríbete a los eventos del espacio de Chat.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: Suscríbete a los eventos del espacio de Chat.
  • SUBSCRIPTION_ID: Es el ID de la suscripción. Para obtener el ID, puedes usar cualquiera de las siguientes opciones:

    • El valor del uid campo.
    • El ID del nombre del recurso representado en el name campo. Por ejemplo, si el nombre del recurso es subscriptions/subscription-123, usa subscription-123.