Actualizar un espacio

En esta guía, se explica cómo usar el método patch en el recurso Space de la API de Google Chat para actualizar un espacio. Actualiza un espacio para cambiar los atributos, como el nombre visible, la descripción y los lineamientos visibles para el usuario.

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 las apps de Chat.
  • Los espacios con nombre son lugares persistentes en los que las personas envían mensajes, comparten archivos y colaboran.

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 Python. Para instalarlos o actualizarlos, ejecuta el siguiente comando en tu interfaz de línea de comandos:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Un proyecto de Google Cloud con la API de Google Chat habilitada y configurada Para conocer los pasos, consulta Compila una app de Google Chat.
  • Autorización configurada para la app de Chat. La actualización de un espacio requiere la autenticación del usuario con el alcance de autorización chat.spaces.

Node.js

  • Node.js y npm
  • Las bibliotecas cliente de Google más recientes para Node.js. Para instalarlos, ejecuta el siguiente comando en tu interfaz de línea de comandos:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Un proyecto de Google Cloud con la API de Google Chat habilitada y configurada Para conocer los pasos, consulta Compila una app de Google Chat.
  • Autorización configurada para la app de Chat. La actualización de un espacio requiere la autenticación del usuario con el alcance de autorización chat.spaces.

Actualiza un espacio

Para actualizar un espacio existente en Google Chat, pasa lo siguiente en la solicitud:

  • Especifica el alcance de la autorización de chat.spaces.
  • Llama al método patch en el recurso Space y pasa el name del espacio que deseas actualizar, así como un updateMask y un body que especifiquen los atributos del espacio actualizados.
  • updateMask especifica los aspectos del espacio que se actualizarán y, además, incluye lo siguiente:
    • displayName: Actualiza el nombre legible por el usuario del espacio que se muestra en la IU de Google Chat. Solo admite cambiar el nombre visible de un espacio con el tipo SPACE o cuando también se incluye la máscara spaceType para cambiar un tipo de espacio GROUP_CHAT a SPACE. Si intentas actualizar el nombre visible de un espacio GROUP_CHAT o DIRECT_MESSAGE, se generará un error de argumento no válido.
    • spaceType: Actualiza el tipo de espacio, pero solo permite cambiar un tipo de espacio GROUP_CHAT a SPACE. Incluye displayName junto con spaceType en la máscara de actualización y asegúrate de que el espacio especificado tenga un displayName no vacío y el tipo de espacio SPACE. Si el espacio existente ya tiene el tipo SPACE (incluida la máscara spaceType y el tipo SPACE en el espacio especificado cuando se actualiza el nombre visible es opcional). Si intentas actualizar el tipo de espacio de otra manera, se generará un error de argumento no válido.
    • spaceDetails: Detalles sobre el espacio, incluidas la descripción y las reglas.
    • spaceHistoryState: Admite activar o desactivar el historial del espacio si la organización permite que los usuarios cambien el parámetro de configuración del historial. Mutuamente excluyentes con todas las demás rutas de campo.

Sigue estos pasos para actualizar el spaceDetails de un espacio existente:

Python

  1. En el directorio de trabajo, crea un archivo llamado chat_space_update.py.
  2. Incluye el siguiente código en chat_space_update.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"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then updates the specified space description and guidelines.
        '''
    
        # 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().patch(
    
          # The space to update, and the updated space details.
          #
          # Replace {space} with a space name.
          # Obtain the space name from the spaces resource of Chat API,
          # or from a space's URL.
          name='spaces/SPACE',
          updateMask='spaceDetails',
          body={
    
            'spaceDetails': {
              'description': 'This description was updated with Chat API!',
              'guidelines': 'These guidelines were updated with Chat API!'
            }
    
          }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. En el código, reemplaza SPACE por un nombre de espacio, que puedes obtener del método spaces.list en la API de Chat o desde la URL de un espacio.

  4. En el directorio de trabajo, compila y ejecuta la muestra:

    python3 chat_space_update.py
    

Node.js

  1. En el directorio de trabajo, crea un archivo llamado update-space.js.
  2. Incluye el siguiente código en update-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Updates a Chat space with the description and guidelines.
    * @return {!Promise<!Object>}
    */
    async function updateSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.patch({
        name: 'spaces/SPACE',
        updateMask: 'spaceDetails',
        requestBody: {
          spaceDetails: {
            description: 'This description was updated with Chat API!',
            guidelines: 'These guidelines were updated with Chat API!'
          },
        }
      });
    }
    
    updateSpace().then(console.log);
    
  3. En el código, reemplaza SPACE por un nombre de espacio, que puedes obtener del método spaces.list en la API de Chat o desde la URL de un espacio.

  4. En tu directorio de trabajo, ejecuta la muestra:

    node update-space.js
    

La API de Google Chat muestra una instancia del recurso Space que refleja las actualizaciones.