Configurer un espace avec les premiers membres

Ce guide explique comment utiliser la méthode setUp() sur la ressource Space de l'API Google Chat pour configurer un espace Google Chat. La configuration d'un espace permet de créer un espace et d'y ajouter les utilisateurs spécifiés.

La Ressource Space représente un endroit 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 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 envoient des messages, partagent des fichiers et de collaborer.

Lorsque vous configurez un espace, tenez compte des points suivants:

  • L'utilisateur appelant (authentifié) est automatiquement ajouté à l'espace. Vous n'avez donc pas besoin de spécifier son appartenance dans la requête.
  • Lorsque vous créez un message privé (MP), si un MP existe entre deux utilisateurs, le MP est renvoyé. Sinon, un message privé est créé.
  • Lors de la création d'un chat de groupe, si aucun des membres indiqués dans la requête n'est ajouté au chat de groupe (par exemple, en raison d'un problème d'autorisation), un chat de groupe vide (n'incluant que l'utilisateur appelant) peut être créé.
  • Vous ne pouvez pas configurer d'espaces avec des réponses sous forme de fil de discussion ni ajouter de personnes externes à votre organisation Google Workspace.
  • Les adhésions en double (y compris l'utilisateur appelant) fournies dans la requête sont filtrées au lieu de générer une erreur de requête.

Prérequis

Node.js

Python

Java

Apps Script

<ph type="x-smartling-placeholder">

Configurer un espace

Pour configurer un espace, 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 SetUpSpace().
  • Transmettez space en tant qu'instance de Space avec tous les champs nécessaires, tels que displayName ou spaceType.
  • Transmettez memberships en tant que tableau d'instances Membership. Pour chaque instance: <ph type="x-smartling-placeholder">
      </ph>
    • Spécifiez users/{user} pour ajouter un utilisateur humain en tant que membre de l'espace, où {user} est soit le {person_id} pour le person de l'API People ou de l'identifiant d'un user dans l'API Directory. Par exemple, si l'utilisateur de l'API People resourceName est people/123456789, vous pouvez ajouter l'utilisateur à l'espace en y compris un abonnement avec users/123456789 en tant que member.name.
    • Spécifiez groups/{group} pour ajouter un groupe en tant que membre de l'espace, où {group} est l'ID du groupe pour lequel vous souhaitez créer une adhésion. ID du groupe peuvent être récupérées à l'aide de API Cloud Identity : Par exemple, si le API Cloud Identity renvoie un groupe nommé groups/123456789, puis définit De membership.groupMember.name à groups/123456789. Les groupes Google ne peuvent pas être ajoutés à un chat de groupe ni à un message privé, mais uniquement à un espace nommé.

Pour créer un MP entre l'utilisateur appelant et un autre utilisateur humain, spécifiez un l'appartenance de l'utilisateur humain à votre requête.

Pour créer un MP entre l'utilisateur appelant et l'application appelante, définissez space.singleUserBotDm à true et ne spécifiez aucune adhésion. Vous pouvez n'utilisez cette méthode que pour configurer un MP avec l'application appelante. Pour ajouter l'appel application en tant que membre d'un espace ou d'un MP existant entre deux utilisateurs humains, consultez créer un abonnement.

L'exemple suivant crée un espace nommé et une appartenance à l'espace pour deux utilisateurs (l'utilisateur authentifié et un autre utilisateur).

Node.js

chat/client-libraries/cloud/set-up-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 set up a named space with one initial member
// 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'
    },
    memberships: [{
      member: {
        // Replace USER_NAME here.
        name: 'users/USER_NAME',
        type: 'HUMAN'
      }
    }]
  };

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

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

main().catch(console.error);

Python

chat/client-libraries/cloud/set_up_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 set_up_space_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.SetUpSpaceRequest(
        space = {
            "space_type": 'SPACE',
            # Replace DISPLAY_NAME here.
            "display_name": 'DISPLAY_NAME'
        },
        memberships = [{
            "member": {
                # Replace USER_NAME here.
                "name": 'users/USER_NAME',
                "type_": 'HUMAN'
            }
        }]
    )

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

    # Handle the response
    print(response)

set_up_space_with_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/SetUpSpaceUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.Membership;
import com.google.chat.v1.SetUpSpaceRequest;
import com.google.chat.v1.Space;
import com.google.chat.v1.User;

// This sample shows how to set up a named space with one initial member with
// user credential.
public class SetUpSpaceUserCred {

  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))) {
      SetUpSpaceRequest.Builder request = SetUpSpaceRequest.newBuilder()
        .setSpace(Space.newBuilder()
          .setSpaceType(Space.SpaceType.SPACE)
          // Replace DISPLAY_NAME here.
          .setDisplayName("DISPLAY_NAME"))
        .addAllMemberships(ImmutableList.of(Membership.newBuilder()
          .setMember(User.newBuilder()
            // Replace USER_NAME here.
            .setName("users/USER_NAME")
            .setType(User.Type.HUMAN)).build()));
      Space response = chatServiceClient.setUpSpace(request.build());

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

Apps Script

chat/advanced-service/Main.gs
/**
 * This sample shows how to set up a named space with one initial member 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 setUpSpaceUserCred() {
  // Initialize request argument(s)
  const space = {
    spaceType: 'SPACE',
    // TODO(developer): Replace DISPLAY_NAME here
    displayName: 'DISPLAY_NAME'
  };
  const memberships = [{
    member: {
      // TODO(developer): Replace USER_NAME here
      name: 'users/USER_NAME',
      // User type for the membership
      type: 'HUMAN'
    }
  }];

  // Make the request
  const response = Chat.Spaces.setup({ space: space, memberships: memberships });

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

Pour exécuter l'exemple, remplacez les éléments suivants:

  • DISPLAY_NAME : nom à afficher du nouvel espace.
  • USER_NAME : ID de l'autre utilisateur pour lequel inclure une adhésion.

Pour accéder à l'espace, utilisez l'ID de ressource de l'espace pour créer son URL. Vous pouvez obtenir l'ID de ressource à partir 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 accéder à l'espace à l'aide de l'URL suivante: https://mail.google.com/chat/u/0/#chat/space/1234567