Créer un espace nommé dans Google Chat

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

Un espace nommé (où spaceType est SPACE) est un endroit où les utilisateurs peuvent envoyer des messages, partager des fichiers et collaborer. Les espaces nommés peuvent inclure des applications Chat. Ils disposent de gestionnaires qui peuvent appliquer des paramètres d'administration et 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 des messages de groupe), utilisez la méthode setUp() sur la ressource Space afin de créer l'espace et d'y ajouter des membres en même temps. Pour en savoir plus, consultez Configurer un espace.

Une fois un espace nommé créé, le seul membre de l'espace est l'utilisateur authentifié. Pour ajouter des membres à l'espace, appelez la create() méthode 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 l'authentification de l'utilisateur, transmettez les éléments suivants dans votre requête :

  • Spécifiez l'autorisation chat.spaces.create ou chat.spaces.
  • Appelez la CreateSpace() méthode, en transmettant space en tant qu'instance de Space avec les champs suivants :
    • spaceType défini sur SPACE.
    • displayName défini sur le nom de l'espace visible par l'utilisateur.
    • 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 le configurer de sorte que tous les membres ou uniquement les gestionnaires d'espace 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);
}

await main();

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 unique de l'administrateur.

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

  • Spécifiez l'autorisation chat.app.spaces.create ou chat.app.spaces scope.
  • Appelez la create méthode sur la Space ressource.
  • 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 d'espace, comme spaceDetails (description visible par l'utilisateur et ensemble de consignes pour l'espace).

É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)
    
        # 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 :

    • CUSTOMER : numéro 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, compilez 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 trouverez l'ID de ressource à partir du name de l'espace dans le corps de la réponse Google Chat. Par exemple, si le name de votre espace est spaces/1234567, vous pouvez accéder à l'espace à l'aide de l'URL suivante : https://mail.google.com/chat/u/0/#chat/space/1234567.

Limites et points à noter

  • Lorsque vous créez un espace à l'aide de l'authentification de l'application, l'application Chat qui s'authentifie est ajoutée en tant que membre de l'espace, mais contrairement à l'authentification de l'utilisateur, elle n'est pas ajoutée en tant que gestionnaire de l'espace. Par défaut, tous les membres de l'espace peuvent supprimer l'application Chat. Pour autoriser uniquement les gestionnaires d'espace à supprimer l'application Chat, définissez permissionSettings.manageApps sur managersAllowed.