Crea un espacio

En esta guía, se explica cómo usar el método create() en el recurso Space de la API de Google Chat para crear un espacio con nombre.

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 en los que las personas envían mensajes, comparten archivos y colaboran.

Un espacio con nombre es un lugar donde las personas envían mensajes, comparten archivos y colaboran. Los espacios con nombre pueden incluir apps de Chat. Los espacios con nombre incluyen funciones adicionales que las conversaciones grupales y los mensajes directos sin nombre no tienen, como administradores de espacios que pueden aplicar parámetros de configuración administrativa y descripciones, y agregar o quitar personas y apps. Después de crear un espacio con nombre, el único miembro del espacio es el usuario autenticado. El espacio no incluye a otras personas ni apps, ni siquiera la app de Chat que lo crea. Para agregar miembros a un espacio, consulta Crea una membresía.

Para crear un espacio con nombre y varios miembros (un chat en grupo sin nombre entre tres o más personas, una conversación de mensaje directo entre dos personas o una persona y la app de Chat que llama a la API de Chat), configura un espacio.

Requisitos previos

Node.js

Python

Java

Apps Script

Crea un espacio con nombre como usuario

Para crear un espacio con nombre con autenticación de usuarios, pasa lo siguiente en tu solicitud:

  • Especifica el alcance de autorización chat.spaces.create o chat.spaces.
  • Llama al método CreateSpace() y pasa space como una instancia de Space con los siguientes campos:
    • spaceType está establecido en SPACE.
    • displayName establecido en el nombre visible para el usuario del espacio
    • De manera opcional, establece otros atributos, como los siguientes:
      • spaceDetails: Es una descripción visible para el usuario y un conjunto de lineamientos para el espacio.
      • predefinedPermissionSettings: Permisos predefinidos para el espacio. Por ejemplo, puedes configurarlo para que todos los miembros o solo los administradores del espacio puedan publicar mensajes.

Sigue estos pasos para crear un espacio con nombre:

Node.js

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

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

// This sample shows how to create a named 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: {
      spaceType: 'SPACE',
      // Replace DISPLAY_NAME here.
      displayName: 'DISPLAY_NAME'
    }
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/create_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.create"]

def create_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        }
    )

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

    # Handle the response
    print(response)

create_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateSpaceRequest;
import com.google.chat.v1.Space;

// This sample shows how to create space with user credential.
public class CreateSpaceUserCred {

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

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateSpaceRequest.Builder request = CreateSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"));
      Space response = chatServiceClient.createSpace(request.build());

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

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to create space with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.create'
 * referenced in the manifest file (appsscript.json).
 */
function createSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };

  // Make the request
  const response = Chat.Spaces.create(space);

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

Crea un espacio con nombre como una app de Chat

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

Para invitar o agregar un usuario a un espacio con autenticación de apps, pasa lo siguiente en tu solicitud:

  • Especifica el permiso de autorización chat.app.spaces.create o chat.app.spaces.
  • Llama al método create en el recurso Space.
  • Configura spaceType como SPACE.
  • Establece displayName en el nombre visible para el usuario del espacio. En el siguiente ejemplo, displayName se configura como API-made.
  • Especifica el ID de cliente del dominio de Google Workspace en el campo customer.
  • De forma opcional, establece otros atributos del espacio, como spaceDetails (una descripción visible para el usuario y un conjunto de lineamientos para el espacio).

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. La clave de API también se puede encontrar 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

A continuación, te mostramos cómo crear un espacio con nombre:

Python

  1. En tu directorio de trabajo, crea un archivo llamado chat_space_create_named_app.py.
  2. Incluye el siguiente código en chat_space_create_named_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.create"]
    
    def main():
        '''
        Authenticates with Chat API using app authentication,
        then creates a Chat space.
        '''
    
        # 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().create(
    
          # Details about the space to create.
          body = {
    
            # To create a named space, set spaceType to SPACE.
            'spaceType': 'SPACE',
    
            # The user-visible name of the space.
            'displayName': 'API-made',
    
            # The customer ID of the Workspace domain.
            'customer': 'CUSTOMER'
          }
    
          ).execute()
    
        # Prints details about the created 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.

    • CUSTOMER: Es el ID de cliente del dominio del espacio en el formato customer/{customer}, en el que {customer} es el ID del recurso de cliente del SDK de Admin. Para crear un espacio en la misma organización de Google Workspace que la app de Chat, usa customers/my_customer.

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

    python3 chat_space_create_named_app.py

Abre el espacio en Google Chat.

Para navegar al espacio, usa el ID de recurso de este para compilar la URL del espacio. Puedes encontrar el ID de recurso en el espacio name en el cuerpo de la respuesta de Google Chat. Por ejemplo, si el name de tu espacio es spaces/1234567, puedes navegar al espacio con la siguiente URL: https://mail.google.com/chat/u/0/#chat/space/1234567.