Ce guide explique comment utiliser la
search() méthode sur la
Space ressource de l'
API Google Chat pour rechercher des espaces nommés dans une organisation Google Workspace.
La
Spaceressource
représente un emplacement où les personnes 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 emplacements persistants où les utilisateurs envoient des messages, partagent des fichiers et collaborent.
Si vous êtes un administrateur Google Workspace et que vous souhaitez effectuer une recherche dans tous les espaces de votre organisation, y compris les espaces privés auxquels vous n'avez pas adhéré, consultez Rechercher et gérer des espaces en tant qu'administrateur Google Workspace pour appeler l'API avec des droits d'administrateur (useAdminAccess=true).
Lorsque vous recherchez des espaces avec l'authentification de l'utilisateur sans droits d'administrateur, la méthode recherche les espaces nommés (spaceType de SPACE) auxquels l'utilisateur authentifié a accès, tels que les espaces dont il est membre, au sein de son organisation.
Prérequis
Node.js
- Un compte Google Workspace Business ou Enterprise avec accès à Google Chat.
- Configurez votre environnement :
- Créez un projet Google Cloud.
- Configurez l'écran de consentement OAuth.
- Activez et configurez l'API Google Chat avec un nom, une icône et une description pour votre application Chat.
- Installez la bibliothèque cliente Cloud Node.js.
-
Créez des identifiants d'ID client OAuth pour une application de bureau. Pour exécuter l'exemple de ce
guide, enregistrez les identifiants dans un fichier JSON nommé
credentials.jsondans votre répertoire local.
- Choisissez un champ d'application d'autorisation compatible avec l'authentification de l'utilisateur.
Python
- Un compte Google Workspace Business ou Enterprise avec accès à Google Chat.
- Configurez votre environnement :
- Créez un projet Google Cloud.
- Configurez l'écran de consentement OAuth.
- Activez et configurez l'API Google Chat avec un nom, une icône et une description pour votre application Chat.
- Installez la bibliothèque cliente Cloud Python.
-
Créez des identifiants d'ID client OAuth pour une application de bureau. Pour exécuter l'exemple de ce
guide, enregistrez les identifiants dans un fichier JSON nommé
credentials.jsondans votre répertoire local.
- Choisissez un champ d'application d'autorisation compatible avec l'authentification de l'utilisateur.
Java
- Configurez votre environnement :
- Créez un projet Google Cloud.
- Configurez l'écran de consentement OAuth.
- Activez et configurez l'API Google Chat avec un nom, une icône et une description pour votre application Chat.
- Installez la bibliothèque cliente Cloud Java .
-
Créez des identifiants d'ID client OAuth pour une application de bureau. Pour exécuter l'exemple de ce
guide, enregistrez les identifiants dans un fichier JSON nommé
credentials.jsondans votre répertoire local.
- Choisissez un champ d'application d'autorisation compatible avec l'authentification de l'utilisateur.
Apps Script
- Un compte Google Workspace Business ou Enterprise avec accès à Google Chat.
- Configurez votre environnement :
- Créez un projet Google Cloud.
- Configurez l'écran de consentement OAuth.
- Activez et configurez l'API Google Chat avec un nom, une icône et une description pour votre application Chat.
- Créez un projet Apps Script autonome, et activez le service Chat avancé.
- Choisissez un champ d'application d'autorisation compatible avec l'authentification de l'utilisateur.
Rechercher des espaces avec l'authentification de l'utilisateur
Pour rechercher des espaces dans Google Chat sans droits d'administrateur, transmettez les éléments suivants dans votre requête :
- Avec l'authentification de l'utilisateur, spécifiez le champ d'application d'autorisation
chat.spaces.readonlyouchat.spaces. - Appelez la
search()méthode sur laSpaceressource. - Définissez
useAdminAccesssurfalse(ou omettez le paramètre). - Spécifiez les paramètres de
queryrecherche pour filtrer les résultats:spaceType = "SPACE": obligatoire lorsquequeryest spécifié et que la seule valeur acceptée estSPACE.displayName: filtrez par nom à afficher de l'espace à l'aide de l'opérateurHAS(:). Exemple :displayName:"Project". Le texte à faire correspondre est tokenisé, et chaque jeton est mis en correspondance de préfixe sans tenir compte de la casse et indépendamment en tant que sous-chaîne n'importe où dans ledisplayNamede l'espace. Remarque : LorsqueuseAdminAccessest défini surfalse,displayNameest obligatoire dans votre requête pour récupérer des résultats pertinents. Sinon, la méthode renvoie une réponse vide.externalUserAllowed: filtrez éventuellement si les invités externes sont autorisés dans l'espace (trueoufalse).
- Vous pouvez également spécifier
pageSizepour limiter le nombre maximal d'espaces à renvoyer (jusqu'à1000) oupageTokenpour récupérer les pages de résultats suivantes. - Vous pouvez également spécifier
orderBypour trier les résultats de recherche (createTime descourelevance desc). Remarque :relevance descest disponible dans le cadre du programme Preview développeur Google Workspace.
Dans les différents champs de la requête, seuls les opérateurs AND sont acceptés. Exemple : spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true". Dans displayName et externalUserAllowed, les opérateurs OR sont acceptés si vous souhaitez faire correspondre plusieurs critères.
L'exemple suivant recherche les espaces nommés dont le nom à afficher contient "Project" :
Node.js
/**
* This sample shows how to search for spaces without administrator privileges.
*
* It relies on the @google-apps/chat npm package.
*/
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
const {ChatServiceClient} = require('@google-apps/chat');
const {auth} = require('google-auth-library');
async function main() {
// Create a client
const chatClient = new ChatServiceClient({
authClient: await auth.getClient({
scopes: ['https://www.googleapis.com/auth/chat.spaces.readonly']
})
});
// Initialize request arguments.
// When useAdminAccess is false, spaceType and displayName are required in query.
const request = {
query: 'spaceType = "SPACE" AND displayName:"Project"',
useAdminAccess: false
};
// Call the API and iterate over the paginated response
const iterable = chatClient.searchSpacesAsync(request);
for await (const result of iterable) {
console.log('Found space:', result.space.displayName, result.space.name);
}
}
main().catch(console.error);
Python
"""
This sample shows how to search for spaces without administrator privileges.
"""
from google.apps import chat_v1
import google.auth
# Read the documentation for more details:
# https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
def search_spaces():
# Create a client
scopes = ["https://www.googleapis.com/auth/chat.spaces.readonly"]
credentials, _ = google.auth.default(scopes=scopes)
client = chat_v1.ChatServiceClient(credentials=credentials)
# Initialize request arguments.
# When use_admin_access is False, space_type and display_name are required in query.
request = chat_v1.SearchSpacesRequest(
query='spaceType = "SPACE" AND displayName:"Project"',
use_admin_access=False
)
# Make the request and iterate over the paginated results.
page_result = client.search_spaces(request)
for result in page_result.results:
print(f"Found space: {result.space.display_name} ({result.space.name})")
if __name__ == "__main__":
search_spaces()
Java
/**
* This sample shows how to search for spaces without administrator privileges.
*/
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.ChatServiceClient.SearchSpacesPagedResponse;
import com.google.chat.v1.SearchSpacesRequest;
import com.google.chat.v1.SearchSpaceResult;
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
public class SearchSpaces {
public static void main(String[] args) throws Exception {
// See https://github.com/googleworkspace/java-samples/blob/main/chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/AuthenticationUtils.java
// for an example of how to authenticate the request.
try (ChatServiceClient chatServiceClient = AuthenticationUtils.createClientWithUserCredentials(
ImmutableList.of("https://www.googleapis.com/auth/chat.spaces.readonly"))) {
SearchSpacesRequest request = SearchSpacesRequest.newBuilder()
.setQuery("spaceType = \"SPACE\" AND displayName:\"Project\"")
.setUseAdminAccess(false)
.build();
SearchSpacesPagedResponse response = chatServiceClient.searchSpaces(request);
for (SearchSpaceResult result : response.iterateAll()) {
System.out.printf("Found space: %s (%s)\n", result.space.getDisplayName(), result.space.getName());
}
}
}
}
Apps Script
/**
* This sample shows how to search for spaces without administrator privileges.
*/
// Read the documentation for more details:
// https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
function searchSpaces() {
try {
// Call the API
// When useAdminAccess is false, spaceType and displayName are required in query.
const response = Chat.Spaces.search({
query: 'spaceType = "SPACE" AND displayName:"Project"',
useAdminAccess: false
});
if (response.results && response.results.length > 0) {
response.results.forEach(result => {
console.log('Found space: %s (%s)', result.space.displayName, result.space.name);
});
} else {
console.log('No matching spaces found.');
}
} catch (err) {
console.log('Failed to search spaces: ' + err.message);
}
}
L'API Chat renvoie une liste paginée d'espaces qui correspondent à la requête et auxquels l'utilisateur appelant a accès.
Articles associés
- Créer un espace
- Configurer un espace
- Obtenir des informations sur un espace
- Lister les espaces
- Mettre à jour un espace
- Supprimer un espace
- Rechercher et gérer des espaces en tant qu'administrateur Google Workspace