Créer un espace nommé dans Google Chat

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

Un espace nommé (où spaceType est SPACE) est un espace 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 ont des gestionnaires qui peuvent appliquer des paramètres administratifs, des descriptions, et ajouter ou supprimer des personnes et des applications.

Pour créer différents types d'espaces Chat (y compris des messages privés ou de groupe), utilisez la méthode setUp() sur la ressource Space pour créer l'espace et ajouter des membres en même temps. Pour en savoir plus, consultez Configurer un espace.

Une fois un espace nommé créé, seul l'utilisateur authentifié en est membre. Pour ajouter des membres à l'espace, appelez la méthode create() sur la ressource Membership pour chaque personne ou application que vous souhaitez ajouter. Vous pouvez également utiliser la méthode setUp() pour créer un espace nommé et y ajouter des membres en même temps.

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 les suivants :
      • 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 de l'application nécessite une approbation de l'administrateur unique.

Pour inviter ou ajouter un utilisateur à un espace avec authentification de l'application, 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 visible par l'utilisateur de l'espace. 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 en version Preview développeur, vous devez utiliser une version non publique de la version Preview développeur 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 de l'API Chat.

    • CUSTOMER: ID client du domaine de l'espace au format customer/{customer}, où {customer} correspond à l'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 pour 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.