Elencare gli abbonamenti a Google Workspace

In questa pagina viene spiegato come elencare gli abbonamenti a Google Workspace utilizzando il metodo subscriptions.list().

Quando chiami questo metodo con autenticazione utente, il metodo restituisce un elenco di abbonamenti autorizzati dall'utente. Quando utilizzi l'autenticazione delle app, il metodo può restituire un elenco contenente qualsiasi abbonamento per l'app.

Prerequisiti

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 aggiungere anche gli ambiti al file appsscript.json nel tuo progetto Apps Script. Ad esempio:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • Abilita il servizio avanzato Google Workspace Events.

Python

  • Python 3.6 o versioni successive
  • Lo strumento di gestione dei pacchetti pip
  • Le librerie client di Google più recenti per Python. Per installarli o aggiornarli, esegui questo comando nell'interfaccia a riga di comando:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Un abbonamento a Google Workspace. Per crearne uno, consulta Creare un abbonamento.

  • Richiede autenticazione:

    • Per l'autenticazione utente, richiede un ambito che supporti almeno uno dei tipi di eventi per l'abbonamento. Per identificare un ambito, consulta Ambiti per tipo di evento.
    • Per l'autenticazione delle app, è necessario l'ambito chat.bot (solo app Google Chat).

Abbonamenti a elenchi autorizzati da un utente

Per elencare le sottoscrizioni, devi filtrare in base ad almeno un tipo di evento. Puoi anche filtrare la query in base a una o più risorse di destinazione. Per scoprire di più sui filtri di query supportati, consulta la documentazione del metodo list().

Il seguente esempio di codice restituisce un array di oggetti Subscription filtrati per tipo di evento e risorsa di destinazione. Con l'autenticazione come utente, il metodo restituisce solo un elenco di abbonamenti che l'utente ha autorizzato a creare l'app.

Per elencare le sottoscrizioni per un tipo di evento e una risorsa di destinazione specificati:

Apps Script

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

    function listSubscriptions() {
      // Filter for event type (required).
      const eventType = 'EVENT_TYPE';
    
      // Filter for target resource (optional).
      const targetResource = 'TARGET_RESOURCE';
    
      const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"`
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.list({ filter });
      console.log(response);
    }
    

    Sostituisci quanto segue:

    • EVENT_TYPE: un tipo di evento formattato secondo la specifica CloudEvents. Ad esempio, per filtrare in base alle iscrizioni che ricevono eventi relativi ai nuovi abbonamenti a uno spazio di Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: una risorsa di destinazione, formattata come nome completo della risorsa. Ad esempio, per filtrare in base agli abbonamenti per uno spazio di Google Chat, utilizza //chat.googleapis.com/spaces/SPACE_ID dove spaces/SPACE_ID rappresenta il campo name per la risorsa Space.
  2. Per elencare gli abbonamenti, esegui la funzione listSubscriptions nel progetto Apps Script.

Python

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

    """List subscriptions."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['SCOPE']
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    # Filter for event type (required).
    EVENT_TYPE = 'EVENT_TYPE'
    
    # Filter for target resource (optional).
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"'
    response = service.subscriptions().list(filter=FILTER).execute()
    print(response)
    

    Sostituisci quanto segue:

    • SCOPE: un ambito OAuth che supporta almeno un tipo di evento dell'abbonamento. Ad esempio, se l'abbonamento riceve eventi uno spazio di Chat aggiornato, https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: un tipo di evento formattato secondo la specifica CloudEvents. Ad esempio, per filtrare in base alle iscrizioni che ricevono eventi relativi ai nuovi abbonamenti a uno spazio di Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: una risorsa di destinazione, formattata come nome completo della risorsa. Ad esempio, per filtrare in base agli abbonamenti per uno spazio di Google Chat, utilizza //chat.googleapis.com/spaces/SPACE_ID dove spaces/SPACE_ID rappresenta il campo name per la risorsa Space.
  2. Nella directory di lavoro, assicurati di aver archiviato le credenziali dell'ID client OAuth e denominato client_secrets.json. L'esempio di codice utilizza questo file JSON per eseguire l'autenticazione con Google Workspace e ottenere le credenziali utente. Per le istruzioni, consulta la pagina Creare le credenziali dell'ID client OAuth.

  3. Per elencare gli abbonamenti, esegui questo comando nel terminale:

    python3 list_subscriptions.py
    

L'API Eventi di Google Workspace restituisce un array suddiviso in pagine di oggetti Subscription che corrispondono al filtro per la query.