Aggiornare o rinnovare un abbonamento a Google Workspace

Questa pagina spiega come rinnovare un abbonamento a Google Workspace utilizzando il subscriptions.update() metodo. Utilizza questo metodo per aggiornare la data di scadenza di un abbonamento, incluso il rinnovo dell'abbonamento per la data di scadenza massima possibile, o per aggiornare l'elenco dei tipi di eventi da ricevere sulla risorsa di destinazione.

Apps Script

  • Un progetto Apps Script:
    • Utilizza il tuo progetto Google Cloud anziché quello predefinito creato automaticamente da Apps Script.
    • Per tutti gli ambiti che hai aggiunto per configurare la schermata per il consenso OAuth, devi anche aggiungere gli ambiti al file appsscript.json nel tuo progetto Apps Script. Ad esempio, se hai specificato l'ambito chat.messages, aggiungi quanto segue:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Attiva il servizio avanzato Google Workspace Events.

Python

  • Python 3.6 o versioni successive
  • Lo strumento di gestione dei pacchetti pip
  • Le librerie client Google più recenti per Python. Per installarle o aggiornarle, esegui il seguente comando nell'interfaccia a riga di comando:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      

Rinnovare un abbonamento a Google Workspace

In questa sezione, utilizza il metodo subscriptions.update() dell'API Google Workspace Events per rinnovare un abbonamento alla sua data di scadenza massima. Per specificare la data di scadenza massima, aggiorna il ttl campo della Subscription risorsa a 0.

La data di scadenza massima dipende dai dati delle risorse inclusi nel payload dell'evento. Per saperne di più sulle date di scadenza, vedi Dati degli eventi per gli eventi di Google Workspace.

Per rinnovare un abbonamento a Google Workspace:

Apps Script

  1. Nel progetto Apps Script, crea un nuovo file di script denominato updateSubscription e aggiungi il seguente codice:

    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);
    }
    

    Sostituisci quanto segue:

    • SUBSCRIPTION_ID: l'ID dell'abbonamento. Per ottenere l'ID, puoi utilizzare uno dei seguenti metodi:
      • Il valore del uid campo.
      • L'ID del nome della risorsa rappresentato nel name campo. Ad esempio, se il nome della risorsa è subscriptions/subscription-123, utilizza subscription-123.
  2. Per aggiornare l'abbonamento a Google Workspace, esegui la funzione updateSubscription nel progetto Apps Script.

Python

  1. Nella directory di lavoro, crea un file denominato update_subscription.py e aggiungi il seguente codice:

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

    Sostituisci quanto segue:

    • SCOPES: uno o più ambiti OAuth che supportano ogni tipo di evento per l'abbonamento. Formattato come array di stringhe. Per elencare più ambiti, separali con una virgola. Ad esempio, 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.
    • SUBSCRIPTION_ID: l'ID dell'abbonamento. Per ottenere l'ID, puoi utilizzare uno dei seguenti metodi:
      • Il valore del uid campo.
      • L'ID del nome della risorsa rappresentato nel name campo. Ad esempio, se il nome della risorsa è subscriptions/subscription-123, utilizza subscription-123.
  2. Nella directory di lavoro, assicurati di aver memorizzato le credenziali dell'ID client OAuth e di aver denominato il file credentials.json. L'esempio di codice utilizza questo file JSON per l'autenticazione con Google Workspace e per ottenere le credenziali utente. Per istruzioni, vedi Creare le credenziali dell'ID client OAuth.

  3. Per aggiornare l'abbonamento a Google Workspace, esegui il comando seguente nel terminale:

    python3 update_subscription.py
L'API Google Workspace Events restituisce un' operazione a lunga esecuzione che contiene l'istanza della risorsa Subscription.

Per ottenere i dettagli sulla risorsa Subscription aggiornata, utilizza il operations.get() metodo e specifica la risorsa Operation restituita dalla tua subscriptions.update() richiesta. In caso contrario, se specifichi una risorsa Operation di una versione precedente dell'abbonamento, la risposta è vuota.

Aggiornare o rinnovare un abbonamento come app Google Chat

Puoi aggiornare o rinnovare un abbonamento agli eventi di Chat come app Chat anziché come utente. La procedura è simile, tranne che:

  1. Anziché l'autenticazione utente, esegui l'autenticazione come app Chat con l'approvazione una tantum dell'amministratore.

  2. Specifica gli ambiti di autorizzazione che consentono all'app Chat di abbonarsi agli eventi di Chat. Questi ambiti di autorizzazione iniziano sempre con chat.app e includono quanto segue:

    • https://www.googleapis.com/auth/chat.app.memberships: abbonati agli eventi dei membri dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: abbonati agli eventi dei membri dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: abbonati agli eventi dei messaggi dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.spaces: abbonati agli eventi dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: abbonati agli eventi dello spazio di Chat.

Scrivere uno script che chiama l'API Google Workspace Events

L'esempio di codice seguente aggiorna l'abbonamento a Google Workspace di un'app 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)

Sostituisci quanto segue:

  • SCOPES: specifica gli ambiti di autorizzazione che consentono all'app Chat di abbonarsi agli eventi di Chat. Questi ambiti di autorizzazione iniziano sempre con chat.app e includono quanto segue:

    • https://www.googleapis.com/auth/chat.app.memberships: abbonati agli eventi dei membri dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: abbonati agli eventi dei membri dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: abbonati agli eventi dei messaggi e delle reazioni dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.spaces: abbonati agli eventi dello spazio di Chat.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: abbonati agli eventi dello spazio di Chat.
  • SUBSCRIPTION_ID: l'ID dell'abbonamento. Per ottenere l'ID, puoi utilizzare uno dei seguenti metodi:

    • Il valore del uid campo.
    • L'ID del nome della risorsa rappresentato nel name campo. Ad esempio, se il nome della risorsa è subscriptions/subscription-123, utilizza subscription-123.