Créer un espace

Ce guide explique comment utiliser la méthode create() sur la ressource Space de l'API Google Chat pour créer un espace nommé.

La ressource Space représente un emplacement où les utilisateurs et les applications Chat peuvent envoyer des messages, partager des fichiers et collaborer. Il existe plusieurs types d'espaces:

  • Les messages privés (MP) sont des conversations entre deux utilisateurs ou entre un utilisateur et une application Chat.
  • Les chats de groupe sont des conversations entre trois utilisateurs ou plus et des applications Chat.
  • Les espaces nommés sont des espaces persistants où les utilisateurs peuvent envoyer des messages, partager des fichiers et collaborer.

Un espace nommé est un endroit où les utilisateurs peuvent envoyer des messages, partager des fichiers et collaborer. Les espaces nommés peuvent inclure des applications Chat. Les espaces nommés incluent des fonctionnalités supplémentaires que les conversations de groupe et les messages privés sans nom n'ont pas. Par exemple, les gestionnaires d'espaces peuvent appliquer des paramètres d'administration, des descriptions, et ajouter ou supprimer des utilisateurs et des applications. Une fois un espace nommé créé, l'utilisateur authentifié est le seul membre de l'espace. L'espace n'inclut pas d'autres personnes ni d'applications, pas même l'application Chat qui le crée. Pour ajouter des membres à un espace, consultez la section Créer une adhésion.

Pour créer un espace nommé comportant plusieurs membres (par exemple, un chat de groupe sans nom entre trois personnes ou plus, une conversation par message privé entre deux personnes, ou une personne et l'application Chat appelant l'API Chat), configurez plutôt un espace.

Prérequis

Node.js

Python

Java

Apps Script

Créer un espace nommé en tant qu'utilisateur

Pour créer un espace nommé avec une authentification utilisateur, transmettez les éléments suivants dans votre requête:

  • Spécifiez le champ d'application d'autorisation chat.spaces.create ou chat.spaces.
  • Appelez la méthode CreateSpace() en transmettant space en tant qu'instance de Space avec les champs suivants :
    • La valeur de spaceType est SPACE.
    • displayName défini sur le nom visible par l'utilisateur de l'espace.
    • Vous pouvez également définir d'autres attributs, comme ceux-ci :
      • spaceDetails : description visible par l'utilisateur et ensemble de consignes pour l'espace.
      • predefinedPermissionSettings : autorisations prédéfinies pour l'espace. Par exemple, vous pouvez configurer l'espace de sorte que tous les membres ou seulement les administrateurs puissent publier des messages.

Pour créer un espace nommé, procédez comme suit:

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);
}

Créer un espace nommé en tant qu'application Chat

L'authentification des applications nécessite une approbation unique de l'administrateur.

Pour inviter ou ajouter un utilisateur à un espace avec l'authentification des applications, transmettez les éléments suivants dans votre requête:

  • Spécifiez le champ d'application de l'autorisation chat.app.spaces.create ou chat.app.spaces.
  • Appelez la méthode create sur la ressource Space.
  • Définissez spaceType sur SPACE.
  • Définissez displayName sur le nom de l'espace visible par l'utilisateur. Dans l'exemple suivant, displayName est défini sur API-made.
  • Spécifiez le numéro client du domaine Google Workspace à l'aide du champ customer.
  • Vous pouvez également définir d'autres attributs de l'espace, comme spaceDetails (une description visible par l'utilisateur et un ensemble de consignes pour l'espace).

Créer une clé API

Pour appeler une méthode d'API Preview développeur, vous devez utiliser une version Preview développeur non publique du document de découverte de l'API. Pour authentifier la requête, vous devez transmettre une clé API.

Pour créer la clé API, ouvrez le projet Google Cloud de votre application et procédez comme suit:

  1. Dans la console Google Cloud, accédez à Menu > API et services > Identifiants.

    Accéder à "Identifiants"

  2. Cliquez sur Créer des identifiants > Clé API.
  3. Votre nouvelle clé API s'affiche.
    • Cliquez sur Copier  pour copier votre clé API et l'utiliser dans le code de votre application. La clé API se trouve également dans la section "Clés API" des identifiants de votre projet.
    • Cliquez sur Restreindre la clé pour mettre à jour les paramètres avancés et limiter l'utilisation de votre clé API. Pour en savoir plus, consultez Appliquer des restrictions de clé API.

Écrire un script qui appelle l'API Chat

Pour créer un espace nommé, procédez comme suit:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_space_create_named_app.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez les éléments suivants:

    • API_KEY: clé API que vous avez créée pour créer le point de terminaison de service pour l'API Chat.

    • CUSTOMER: ID client du domaine de l'espace au format customer/{customer}, où {customer} est le ID de la ressource client du SDK Admin. Pour créer un espace dans la même organisation Google Workspace que l'application Chat, utilisez customers/my_customer.

  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_space_create_named_app.py

Ouvrir l'espace dans Google Chat

Pour accéder à l'espace, utilisez l'ID de ressource de l'espace afin de créer son URL. Vous pouvez trouver l'ID de ressource de l'espace name dans le corps de la réponse Google Chat. Par exemple, si le name de votre espace est spaces/1234567, vous pouvez y accéder à l'aide de l'URL suivante: https://mail.google.com/chat/u/0/#chat/space/1234567.