Questa pagina spiega come elencare gli abbonamenti a Google Workspace utilizzando il
subscriptions.list()
metodo.
Quando chiami questo metodo con l'autenticazione utente, il metodo restituisce un elenco di abbonamenti autorizzati dall'utente. Quando utilizzi l'autenticazione dell'app, il metodo può restituire un elenco contenente qualsiasi abbonamento per l'app.
Prerequisiti
Apps Script
- Un abbonamento a Google Workspace. Per crearne uno, vedi Creare un abbonamento.
- 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.jsonnel tuo progetto Apps Script. Ad esempio, se hai specificato l'ambitochat.messages, aggiungi quanto segue: - Attiva
il servizio avanzato
Google Workspace Events.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Richiede l'autenticazione e un ambito di autorizzazione appropriato per ogni tipo di evento nell'abbonamento:
- Per l'autenticazione utente, è necessario un ambito che supporti almeno uno dei tipi di evento per l'abbonamento. Per identificare un ambito, vedi Ambiti per tipo di evento.
- Per l'autenticazione dell'app, è necessario l'ambito
chat.bot(solo per le app di Google Chat).
Python
- Python 3.6 o versioni successive
- Lo strumento di gestione dei pacchetti pip
- Le librerie client di 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
- Un abbonamento a Google Workspace. Per crearne uno, vedi Creare un abbonamento.
Richiede l'autenticazione e un ambito di autorizzazione appropriato per ogni tipo di evento nell'abbonamento:
- Per l'autenticazione utente, è necessario un ambito che supporti almeno uno dei tipi di evento per l'abbonamento. Per identificare un ambito, vedi Ambiti per tipo di evento.
- Per l'autenticazione dell'app, è necessario l'ambito
chat.bot(solo per le app di Google Chat).
Elencare gli abbonamenti autorizzati da un utente
Per elencare gli abbonamenti, 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 documentazionelist() del metodo.
L'esempio di codice seguente restituisce un array di
Subscription oggetti
filtrati per tipo di evento e risorsa di destinazione. Quando l'autenticazione viene eseguita come utente, il metodo restituisce solo un elenco di abbonamenti che l'utente ha autorizzato l'app a creare.
Per elencare gli abbonamenti per un tipo di evento e una risorsa di destinazione specificati:
Apps Script
Nel progetto Apps Script, crea un nuovo file di script denominato
listSubscriptionse 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 in base alla specifica CloudEvents. Ad esempio, per filtrare gli abbonamenti che ricevono eventi relativi a nuove iscrizioni a uno spazio di 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 Chat, utilizza//chat.googleapis.com/spaces/SPACE_IDdovespaces/SPACE_IDrappresenta il camponameper la risorsaSpace.
Per elencare gli abbonamenti, esegui la funzione
listSubscriptionsnel progetto Apps Script.
Python
Nella directory di lavoro, crea un file denominato
list_subscriptions.pye 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('credentials.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 relativi a uno spazio di Chat aggiornato,https://www.googleapis.com/auth/chat.spaces.readonly.EVENT_TYPE: un tipo di evento formattato in base alla specifica CloudEvents. Ad esempio, per filtrare gli abbonamenti che ricevono eventi relativi a nuove iscrizioni a uno spazio di 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 Chat, utilizza//chat.googleapis.com/spaces/SPACE_IDdovespaces/SPACE_IDrappresenta il camponameper la risorsaSpace.
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 eseguire l'autenticazione con Google Workspace e ottenere le credenziali utente. Per istruzioni, vedi Creare le credenziali dell'ID client OAuth.Per elencare gli abbonamenti, esegui questo comando nel terminale:
python3 list_subscriptions.py
L'API Google Workspace Events restituisce un array paginato di Subscription
oggetti
che corrispondono al filtro della query.