Este guia explica como usar o
search() método no
Space recurso da
API Google Chat para pesquisar espaços nomeados em uma organização do Google Workspace.
O recurso
Space
representa um lugar onde pessoas e apps do Chat podem enviar mensagens,
compartilhar arquivos e colaborar. Há vários tipos de espaços:
- As mensagens diretas (DMs) são conversas entre dois usuários ou um usuário e um app do Chat.
- As conversas em grupo são conversas entre três ou mais usuários e apps do Chat.
- Os espaços nomeados são lugares permanentes onde as pessoas enviam mensagens, compartilham arquivos e colaboram.
Se você for um administrador do Google Workspace e quiser pesquisar em todos os espaços da sua organização, incluindo espaços particulares aos quais você não participa, consulte Pesquisar e gerenciar espaços como administrador do Google Workspace para chamar a API com privilégios de administrador (useAdminAccess=true).
Ao pesquisar espaços com autenticação do usuário sem privilégios de administrador, o método pesquisa espaços nomeados (spaceType de SPACE) a que o usuário autenticado tem acesso, como espaços de que ele faz parte, na organização.
Pré-requisitos
Node.js
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto na nuvem do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, ícone e descrição para o app do Chat.
- Instale a biblioteca de cliente do Cloud para Node.js.
-
Crie credenciais de ID do cliente OAuth para um aplicativo para computador. Para executar o exemplo neste
guia, salve as credenciais como um arquivo JSON chamado
credentials.jsonno seu diretório local.
- Escolha um escopo de autorização que ofereça suporte à autenticação do usuário.
Python
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto na nuvem do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, ícone e descrição para o app do Chat.
- Instale a biblioteca de cliente do Cloud para Python.
-
Crie credenciais de ID do cliente OAuth para um aplicativo para computador. Para executar o exemplo neste
guia, salve as credenciais como um arquivo JSON chamado
credentials.jsonno seu diretório local.
- Escolha um escopo de autorização que ofereça suporte à autenticação do usuário.
Java
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto na nuvem do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, ícone e descrição para o app do Chat.
- Instale a biblioteca de cliente do Cloud para Java.
-
Crie credenciais de ID do cliente OAuth para um aplicativo para computador. Para executar o exemplo neste
guia, salve as credenciais como um arquivo JSON chamado
credentials.jsonno seu diretório local.
- Escolha um escopo de autorização que ofereça suporte à autenticação do usuário.
Apps Script
- Uma conta do Google Workspace Business ou Enterprise com acesso ao Google Chat.
- Configure seu ambiente:
- Crie um projeto na nuvem do Google Cloud.
- Configure a tela de permissão OAuth.
- Ative e configure a API Google Chat com um nome, ícone e descrição para o app do Chat.
- Crie um projeto independente do Apps Script, e ative o serviço avançado do Chat.
- Escolha um escopo de autorização que ofereça suporte à autenticação do usuário.
Pesquisar espaços com autenticação do usuário
Para pesquisar espaços no Google Chat sem privilégios de administrador, transmita o seguinte na sua solicitação:
- Com autenticação do usuário, especifique o
chat.spaces.readonlyouchat.spacesescopo de autorização. - Chame o
search()método noSpacerecurso. - Defina
useAdminAccesscomofalseou omita o parâmetro. - Especifique os parâmetros de pesquisa
querypara filtrar os resultados:spaceType = "SPACE"- obrigatório quandoqueryé especificado e o único valor compatível éSPACE.displayName: filtre pelo nome de exibição do espaço usando o operadorHAS(:). Por exemplo,displayName:"Project". O texto a ser correspondido é tokenizado, e cada token é correspondido por prefixo, sem diferenciar maiúsculas de minúsculas e de forma independente como uma substring em qualquer lugar dodisplayNamedo espaço. Observação: quandouseAdminAccesséfalse,displayNameé obrigatório na consulta para recuperar resultados significativos. Caso contrário, o método retorna uma resposta vazia.externalUserAllowed- opcionalmente, filtre se os convidados externos são permitidos no espaço (trueoufalse).
- Opcionalmente, especifique
pageSizepara limitar o número máximo de espaços a serem retornados (até1000) oupageTokenpara recuperar as páginas de resultados subsequentes. - Opcionalmente, especifique
orderBypara classificar os resultados da pesquisa (createTime descourelevance desc). Observação:relevance descestá disponível no Programa de prévia para desenvolvedores do Google Workspace.
Em diferentes campos da consulta, apenas os operadores AND são aceitos. Por exemplo: spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true". Em displayName e externalUserAllowed, os operadores OR são aceitos se você quiser corresponder a vários critérios.
O exemplo a seguir pesquisa espaços nomeados que contêm "Project" no nome de exibição:
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);
}
}
A API Chat retorna uma lista paginada de espaços que correspondem à consulta e estão acessíveis ao usuário que está chamando.
Temas relacionados
- Criar um espaço
- Configurar um espaço
- Receber detalhes sobre um espaço
- Listar espaços
- Atualizar um espaço
- Excluir um espaço
- Pesquisar e gerenciar espaços como administrador do Google Workspace