Mostrar lista de espacios

En esta guía, se explica cómo usar el recurso list en el recurso Space de la API de Google Chat para enumerar los espacios. Enumerar espacios muestra un resultado paginado, una lista de espacios.

El Recurso Space representa un lugar donde las personas y las apps de Chat pueden enviar mensajes, compartir archivos y colaborar. Existen varios tipos de espacios:

  • Los mensajes directos (MD) son conversaciones entre dos usuarios o un usuario y una app de Chat.
  • Los chats en grupo son conversaciones entre tres o más usuarios y Apps de Chat
  • Los espacios con nombre son lugares persistentes donde las personas envían mensajes, y colaborar.

Enumerar espacios con autenticación de apps Se muestran los espacios a los que tiene acceso la app de Chat. Ficha espacios con Autenticación de usuarios enumera los espacios a los que tiene acceso el usuario autenticado.

Requisitos previos

Python

  • Python 3.6 o superior
  • La herramienta de administración de paquetes pip
  • Las bibliotecas cliente de Google más recientes. Para instalarlas o actualizarlas, Ejecuta el siguiente comando en tu interfaz de línea de comandos:
    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    

Node.js

  • Node.js 14 o versiones posteriores
  • La herramienta npm herramienta de administración de paquetes
  • Las bibliotecas cliente de Google más recientes. Para instalarlas o actualizarlas, Ejecuta el siguiente comando en tu interfaz de línea de comandos:
    npm install @google-cloud/local-auth @googleapis/chat
    

Muestra una lista de espacios con autenticación de usuario

Para enumerar espacios en Google Chat, pasa lo siguiente en tu solicitud:

En el siguiente ejemplo, se enumeran los espacios con nombre y los chats en grupo (pero no los (que se filtran) visibles para el usuario autenticado:

Python

  1. En el directorio de trabajo, crea un archivo llamado chat_space_list.py.
  2. Incluye el siguiente código en 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. En tu directorio de trabajo, compila y ejecuta la muestra:

    python3 chat_space_list.py
    

Node.js

  1. En el directorio de trabajo, crea un archivo llamado list-spaces.js.
  2. Incluye el siguiente código en 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. En tu directorio de trabajo, ejecuta la muestra:

    node list-spaces.js
    

La API de Chat muestra un array paginado de espacios con nombre y chats en grupo.

Muestra una lista de espacios con autenticación de app

Para enumerar espacios en Google Chat, pasa lo siguiente en tu solicitud:

En el siguiente ejemplo, se enumeran los espacios con nombre y los chats en grupo (pero no los visibles) para la app de Chat:

Python

  1. En el directorio de trabajo, crea un archivo llamado chat_space_list_app.py.
  2. Incluye el siguiente código en 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. En tu directorio de trabajo, compila y ejecuta la muestra:

    python3 chat_space_list_app.py
    

Node.js

  1. En el directorio de trabajo, crea un archivo llamado app-list-spaces.js.
  2. Incluye el siguiente código en 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. En tu directorio de trabajo, ejecuta la muestra:

    node app-list-spaces.js
    

La API de Chat muestra un array de espacios paginado.

Personaliza la paginación o filtra la lista

Para mostrar una lista de espacios en Google Chat, pasa el siguiente parámetros de consulta para personalizar la paginación o filtrar los espacios enumerados:

  • pageSize: La cantidad máxima de espacios que se mostrarán. Es posible que el servicio muestre menor a este valor. Si no se especifica, se muestran 100 espacios como máximo. El el valor máximo es 1,000; los valores superiores a 1,000 se cambian automáticamente a 1,000.
  • pageToken: Un token de página, recibido de una llamada anterior a los espacios de lista. Proporciona este token para recuperar la página siguiente. Al paginar, el valor del filtro debe coincidir con la llamada que proporcionó el token de la página. Si pasas un un valor diferente puede generar resultados inesperados.
  • filter: Es un filtro de consulta. Para obtener detalles de consultas compatibles, revisa el Método spaces.list.