Elencare utenti e app Google Chat in uno spazio

Questa guida spiega come utilizzare il metodo list nella risorsa membership dell'API Google Chat per elencare gli utenti e l'app Chat in uno spazio come elenco impaginato e filtrabile di membri in uno spazio. Nella scheda degli abbonamenti con autenticazione delle app vengono elencati gli abbonamenti negli spazi a cui ha accesso l'app Chat, ma sono esclusi gli abbonamenti all'app Chat, inclusi i propri. Nell'elenco delle appartenenze con Autenticazione utente vengono elencate le iscrizioni negli spazi a cui ha accesso l'utente autenticato.

La risorsa Membership indica se un utente umano o l'app Google Chat è stato invitato in uno spazio o è assente in uno spazio.

Prerequisiti

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 questo comando nell'interfaccia a riga di comando:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Un progetto Google Cloud in cui l'API Google Chat è abilitata e configurata. Per i passaggi da seguire, consulta Creare un'app Google Chat.
  • Autorizzazione configurata per l'app Chat. Gli abbonamenti della scheda supportano entrambi i seguenti metodi di autenticazione:

Elenca utenti e app di Chat in uno spazio con autenticazione utente

Per elencare gli utenti e l'app di Chat in uno spazio a cui ha accesso l'utente autenticato, trasmetti quanto segue nella richiesta:

L'esempio seguente elenca i membri dello spazio umano (non i gestori dello spazio) visibili all'utente autenticato perché il criterio filter è impostato su ROLE_Member:

Python

  1. Nella directory di lavoro, crea un file denominato chat_member_list_user.py.
  2. Includi il seguente codice in chat_member_list_user.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists human space members (but not space managers) in a
        specified space.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                    'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Nel codice, sostituisci SPACE con il nome di uno spazio, che puoi ottenere dal metodo spaces.list nell'API Chat o dall'URL di uno spazio.

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_member_list_user.py
    

L'API Google Chat restituisce un elenco dei membri dello spazio umano (esclusi i gestori dello spazio) e dei membri dell'app dello spazio specificato.

Elenca utenti e app di Chat in uno spazio con autenticazione delle app

Per elencare gli utenti e l'app di Chat in uno spazio a cui ha accesso l'app autenticata, trasmetti quanto segue nella richiesta:

Nell'esempio seguente sono elencati i membri dello spazio umani (non i gestori dello spazio) visibili all'app Chat:

Python

  1. Nella directory di lavoro, crea un file denominato chat_member_list_app.py.
  2. Includi il seguente codice in chat_member_list_app.py:

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
    print(result)
    
  3. Nel codice, sostituisci SPACE con il nome di uno spazio, che puoi ottenere dal metodo spaces.list nell'API Chat o dall'URL di uno spazio.

  4. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_member_list_app.py
    

L'API Google Chat restituisce un elenco di membri dello spazio umano (esclusi i gestori dello spazio) dallo spazio specificato.

Personalizza l'impaginazione o filtra l'elenco

Per elencare le appartenenze, trasmetti i seguenti parametri di query per personalizzare l'impaginazione o filtrare le iscrizioni elencate:

  • pageSize: il numero massimo di abbonamenti da restituire. Il servizio potrebbe restituire meno di questo valore. Se non specificati, vengono restituiti al massimo 100 spazi. Il valore massimo è 1000; i valori superiori a 1000 vengono automaticamente modificati in 1000.
  • pageToken: un token di pagina, ricevuto da una precedente chiamata a spazi elenco. Fornisci questo token per recuperare la pagina successiva. Durante l'impaginazione, il valore del filtro deve corrispondere alla chiamata che ha fornito il token della pagina. La trasmissione di un valore diverso potrebbe portare a risultati imprevisti.
  • filter: un filtro di query. Richiede l'autenticazione degli utenti. Per i dettagli delle query supportate, consulta il metodo spaces.members.list.