Elenca spazi

Questa guida spiega come utilizzare la risorsa list nella risorsa Space dell'API Google Chat per elencare gli spazi. L'elenco degli spazi restituisce un elenco impaginato e filtrabile di spazi.

La risorsa Space rappresenta un luogo in cui le persone e le app di chat possono inviare messaggi, condividere file e collaborare. Esistono diversi tipi di spazi:

  • I messaggi diretti sono conversazioni tra due utenti o un utente e un'app di Chat.
  • Le chat di gruppo sono conversazioni tra tre o più utenti e app di Chat.
  • Gli spazi con nome sono spazi permanenti in cui le persone inviano messaggi, condividono file e collaborano.

Nell'elenco degli spazi con autenticazione delle app vengono elencati gli spazi a cui ha accesso l'app Chat. Nell'elenco degli spazi con Autenticazione utente vengono elencati gli spazi a cui ha accesso l'utente autenticato.

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 installarli o aggiornarli, 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 di Chat. Gli spazi di elenco supportano entrambi i seguenti metodi di autenticazione:

Node.js

  • Node.js e npm
  • Le librerie client di Google più recenti per Node.js. Per installarle, esegui questo comando nell'interfaccia a riga di comando:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • 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 di Chat. Gli spazi di elenco supportano entrambi i seguenti metodi di autenticazione:

Elencare gli spazi con autenticazione utente

Per elencare gli spazi in Google Chat, supera quanto segue nella richiesta:

Nell'esempio seguente sono elencati gli spazi denominati e le chat di gruppo (ma non i messaggi diretti, che vengono filtrati) visibili all'utente autenticato:

Python

  1. Nella directory di lavoro, crea un file denominato chat_space_list.py.
  2. Includi il seguente codice in chat_space_list.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.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists named spaces and group chats (but not direct messages)
        visible to the authenticated user.
        '''
    
        # 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().list(
    
              # An optional filter that returns named spaces or unnamed group chats,
              # but not direct messages (DMs).
              filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
          ).execute()
    
        # Prints the returned list of spaces.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_space_list.py
    

Node.js

  1. Nella directory di lavoro, crea un file denominato list-spaces.js.
  2. Includi il seguente codice in list-spaces.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.readonly',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Nella tua directory di lavoro, esegui l'esempio:

    node list-spaces.js
    

L'API Chat restituisce un array suddiviso di spazi denominati e chat di gruppo.

Elencare gli spazi con autenticazione delle app

Per elencare gli spazi in Google Chat, supera quanto segue nella richiesta:

Nell'esempio seguente sono elencati gli spazi denominati e le chat di gruppo (ma non i messaggi diretti) visibili all'app Chat:

Python

  1. Nella directory di lavoro, crea un file denominato chat_space_list_app.py.
  2. Includi il seguente codice in chat_space_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().list(
    
            # An optional filter that returns named spaces or unnamed
            # group chats, but not direct messages (DMs).
            filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
        ).execute()
    
    print(result)
    
  3. Nella directory di lavoro, crea ed esegui l'esempio:

    python3 chat_space_list_app.py
    

Node.js

  1. Nella directory di lavoro, crea un file denominato app-list-spaces.js.
  2. Includi il seguente codice in app-list-spaces.js:

    const chat = require('@googleapis/chat');
    
    /**
    * List Chat spaces.
    * @return {!Promise<!Object>}
    */
    async function listSpaces() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.bot',
      ];
    
      const auth = new chat.auth.GoogleAuth({
        scopes,
        keyFilename: 'credentials.json',
      });
    
      const authClient = await auth.getClient();
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.list({
        filter: 'spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
      });
    }
    
    listSpaces().then(console.log);
    
  3. Nella tua directory di lavoro, esegui l'esempio:

    node app-list-spaces.js
    

L'API Chat restituisce un array impaginato di spazi.

Personalizza l'impaginazione o filtra l'elenco

Per elencare gli spazi in Google Chat, trasmetti i seguenti parametri di query facoltativi per personalizzare l'impaginazione o filtrare gli spazi in elenco:

  • pageSize: il numero massimo di spazi 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. Per i dettagli delle query supportate, consulta il metodo spaces.list.