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. Actualizar un espacio para cambiar sus atributos, como su nombre visible para el usuario, descripción y lineamientos

Si eres administrador de Google Workspace, puedes llamar al método patch() para actualizar cualquier espacio existente en tu organización de Google Workspace.

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, comparten archivos y colaboran.

Requisitos previos

Node.js

Python

Java

Apps Script

Actualiza un espacio como usuario

Para actualizar un espacio existente en Google Chat con autenticación de usuarios, pasa lo siguiente en tu solicitud:

  • Especifica el alcance de autorización de chat.spaces.
  • Realiza una llamada al método UpdateSpace(). En tu solicitud, especifica el campo name del espacio, el campo updateMask con uno o más campos para actualizar y un body con la información actualizada del espacio.

Puedes actualizar elementos como el nombre visible, el tipo de espacio, el estado del historial y mucho más. Para ver todos los campos que puedes actualizar, consulta la documentación de referencia.

Sigue estos pasos para actualizar el campo displayName de un espacio existente:

Node.js

chat/client-libraries/cloud/update-space-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.spaces'];

// This sample shows how to update a space with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    space: {
      // Replace SPACE_NAME here
      name: 'spaces/SPACE_NAME',
      displayName: 'New space display name'
    },
    // The field paths to update. Separate multiple values with commas or use
    // `*` to update all field paths.
    updateMask: {
      // The field paths to update.
      paths: ['display_name']
    }
  };

  // Make the request
  const response = await chatClient.updateSpace(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Python

chat/client-libraries/cloud/update_space_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.spaces"]

# This sample shows how to update a space with user credential
def update_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.UpdateSpaceRequest(
        space = {
            # Replace SPACE_NAME here
            'name': 'spaces/SPACE_NAME',
            'display_name': 'New space display name'
        },
        # The field paths to update. Separate multiple values with commas.
        update_mask = 'displayName'
    )

    # Make the request
    response = client.update_space(request)

    # Handle the response
    print(response)

update_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/UpdateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.UpdateSpaceRequest;
import com.google.chat.v1.Space;
import com.google.protobuf.FieldMask;

// This sample shows how to update space with user credential.
public class UpdateSpaceUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.spaces";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      UpdateSpaceRequest.Builder request = UpdateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          // Replace SPACE_NAME here.
          .setName("spaces/SPACE_NAME")
          .setDisplayName("New space display name"))
        .setUpdateMask(FieldMask.newBuilder()
          // The field paths to update.
          .addPaths("display_name"));
      Space response = chatServiceClient.updateSpace(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to update a space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces'
 * referenced in the manifest file (appsscript.json).
 */
function updateSpaceUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here
  const name = 'spaces/SPACE_NAME';
  const space = {
    displayName: 'New space display name'
  };
  // The field paths to update. Separate multiple values with commas or use
  // `*` to update all field paths.
  const updateMask = 'displayName';

  // Make the request
  const response = Chat.Spaces.patch(space, name, {
    updateMask: updateMask
  });

  // Handle the response
  console.log(response);
}

Para ejecutar esta muestra, reemplaza SPACE_NAME por el ID del campo name del espacio. Para obtener el ID, llama al método ListSpaces() o desde la URL del espacio.

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

Cómo actualizar un espacio como administrador de Google Workspace

Si eres administrador de Google Workspace, puedes llamar al método UpdateSpace() para actualizar cualquier espacio de tu organización de Google Workspace.

Para llamar a este método como administrador de Google Workspace, haz lo siguiente:

Para obtener más información y ejemplos, consulta Cómo administrar espacios de Google Chat como administrador de Google Workspace.

Cómo actualizar un espacio como una app de Chat

La autenticación de apps requiere una aprobación del administrador única.

Para actualizar un espacio existente en Google Chat con la autenticación de apps, pasa lo siguiente en la solicitud:

  • Especifica el alcance de autorización de chat.app.spaces. Con la autenticación de apps, solo puedes actualizar los espacios que crean las apps de Chat.
  • Llama al método patch en el recurso Space. En tu solicitud, especificas el campo name del espacio, el campo updateMask con uno o más campos para actualizar y un body con la información del espacio actualizada.

Puedes actualizar elementos como el nombre visible, el tipo de espacio, el estado del historial, la configuración de permisos y mucho más. Para ver todos los campos que puedes actualizar, consulta la documentación de referencia.

Crea una clave de API

Para llamar a un método de la API de la Versión preliminar para desarrolladores, debes usar una versión no pública de la versión preliminar para desarrolladores del documento de descubrimiento de la API. Para autenticar la solicitud, debes pasar una clave de API.

Para crear la clave de API, abre el proyecto de Google Cloud de tu app y haz lo siguiente:

  1. En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales > Clave de API.
  3. Se mostrará tu nueva clave de API.
    • Haz clic en Copiar para copiar la clave de API y usarla en el código de tu app. También puedes encontrar la clave de API en la sección "Claves de API" de las credenciales de tu proyecto.
    • Haz clic en Restringir clave para actualizar la configuración avanzada y limitar el uso de tu clave de API. Para obtener más detalles, consulta Aplica restricciones de claves de API.

Escribe una secuencia de comandos que llame a la API de Chat

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

Python

  1. En tu directorio de trabajo, crea un archivo llamado chat_space_update_app.py.
  2. Incluye el siguiente código en chat_space_update_app.py:

    from google.oauth2 import service_account
    from apiclient.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.app.spaces"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then updates the specified space description and guidelines.
        '''
    
        # Specify service account details.
        creds = (
            service_account.Credentials.from_service_account_file('credentials.json')
            .with_scopes(SCOPES)
        )
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY')
    
        # 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 updated space.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. En el código, reemplaza lo siguiente:

    • API_KEY: Es la clave de API que creaste para compilar el extremo de servicio de la API de Chat.
    • SPACE por un nombre de espacio, que puedes obtener del método spaces.list en la API de Chat o de la URL de un espacio
  4. En tu directorio de trabajo, compila y ejecuta la muestra:

    python3 chat_space_update_app.py

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