Ten przewodnik wyjaśnia, jak używać metody
search() w zasobie
Spaceinterfejsu
Google Chat API do wyszukiwania nazwanych pokoi w organizacji Google Workspace.
Zasób
Space reprezentuje miejsce, w którym użytkownicy i aplikacje Chat mogą wysyłać wiadomości, udostępniać pliki i współpracować. Istnieje kilka rodzajów pokoi:
- Czaty to rozmowy między 2 użytkownikami lub między użytkownikiem a aplikacją Chat.
- Czaty grupowe to rozmowy między co najmniej 3 użytkownikami a aplikacjami Chat.
- Nazwane pokoje to trwałe miejsca, w których użytkownicy mogą wysyłać wiadomości, udostępniać pliki i współpracować.
Jeśli jesteś administratorem Google Workspace i chcesz przeszukać wszystkie pokoje w organizacji, w tym pokoje prywatne, do których nie należysz, przeczytaj artykuł Wyszukiwanie pokoi i zarządzanie nimi jako administrator Google Workspace, aby wywołać interfejs API z uprawnieniami administratora (useAdminAccess=true).
Podczas wyszukiwania pokoi z uwierzytelnianiem użytkownika bez uprawnień administratora metoda wyszukuje nazwane pokoje (spaceType o wartości SPACE), do których ma dostęp uwierzytelniony użytkownik, np. pokoje, których jest członkiem, w swojej organizacji.
Wymagania wstępne
Node.js
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Skonfiguruj środowisko:
- Utwórz projekt Google Cloud.
- Skonfiguruj ekran zgody OAuth.
- Włącz i skonfiguruj interfejs Google Chat API, podając nazwę, ikonę i opis aplikacji Chat.
- Zainstaluj bibliotekę klienta Cloud dla Node.js .
-
Utwórz dane logowania identyfikatora klienta OAuth dla aplikacji na komputer. Aby uruchomić przykład w tym
przewodniku, zapisz dane logowania w pliku JSON o nazwie
credentials.jsonw katalogu lokalnym.
- Wybierz zakres autoryzacji, który obsługuje uwierzytelnianie użytkownika.
Python
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Skonfiguruj środowisko:
- Utwórz projekt Google Cloud.
- Skonfiguruj ekran zgody OAuth.
- Włącz i skonfiguruj interfejs Google Chat API, podając nazwę, ikonę i opis aplikacji Chat.
- Zainstaluj bibliotekę klienta Cloud dla Pythona.
-
Utwórz dane logowania identyfikatora klienta OAuth dla aplikacji na komputer. Aby uruchomić przykład w tym
przewodniku, zapisz dane logowania w pliku JSON o nazwie
credentials.jsonw katalogu lokalnym.
- Wybierz zakres autoryzacji, który obsługuje uwierzytelnianie użytkownika.
Java
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Skonfiguruj środowisko:
- Utwórz projekt Google Cloud.
- Skonfiguruj ekran zgody OAuth.
- Włącz i skonfiguruj interfejs Google Chat API, podając nazwę, ikonę i opis aplikacji Chat.
- Zainstaluj bibliotekę klienta Cloud dla Javy.
-
Utwórz dane logowania identyfikatora klienta OAuth dla aplikacji na komputer. Aby uruchomić przykład w tym
przewodniku, zapisz dane logowania w pliku JSON o nazwie
credentials.jsonw katalogu lokalnym.
- Wybierz zakres autoryzacji, który obsługuje uwierzytelnianie użytkownika.
Apps Script
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Skonfiguruj środowisko:
- Utwórz projekt Google Cloud.
- Skonfiguruj ekran zgody OAuth.
- Włącz i skonfiguruj interfejs Google Chat API, podając nazwę, ikonę i opis aplikacji Chat.
- Utwórz samodzielny projekt Apps Script, i włącz zaawansowaną usługę Chat.
- Wybierz zakres autoryzacji, który obsługuje uwierzytelnianie użytkownika.
Wyszukiwanie pokoi z uwierzytelnianiem użytkownika
Aby wyszukać pokoje w Google Chat bez uprawnień administratora, w żądaniu podaj te informacje:
- W przypadku uwierzytelniania użytkownika określ zakres autoryzacji
chat.spaces.readonlylubchat.spaces. - Wywołaj metodę
search()w zasobieSpace. - Ustaw wartość
useAdminAccessnafalse(lub pomiń ten parametr). - Określ parametry
querywyszukiwania, aby filtrować wyniki:spaceType = "SPACE"– wymagane, gdy określonoquery, a jedyną obsługiwaną wartością jestSPACE.displayName– filtruj według wyświetlanej nazwy pokoju za pomocą operatoraHAS(:). Na przykładdisplayName:"Project". Tekst do dopasowania jest tokenizowany, a każdy token jest dopasowywany do prefiksu bez uwzględniania wielkości liter i niezależnie jako podciąg w dowolnym miejscu w poludisplayNamepokoju. Uwaga: gdyuseAdminAccessma wartośćfalse, w zapytaniu musisz podaćdisplayName, aby uzyskać przydatne wyniki. W przeciwnym razie metoda zwróci pustą odpowiedź.externalUserAllowed– opcjonalnie filtruj według tego, czy w pokoju są dozwoleni goście zewnętrzni (truelubfalse).
- Opcjonalnie możesz określić
pageSize, aby ograniczyć maksymalną liczbę zwracanych pokoi (do1000), lubpageToken, aby pobrać kolejne strony wyników. - Opcjonalnie możesz określić
orderBy, aby posortować wyniki wyszukiwania (createTime desclubrelevance desc). Uwaga:relevance descjest dostępny w ramach programu Google Workspace Developer Preview.
W różnych polach zapytania obsługiwane są tylko operatory AND. Na przykład: spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true". W przypadku displayName i externalUserAllowed obsługiwane są operatory OR, jeśli chcesz dopasować wiele kryteriów.
Poniższy przykład wyszukuje nazwane pokoje, które w wyświetlanej nazwie zawierają „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);
}
}
Interfejs Chat API zwraca podzieloną na strony listę pokoi, które pasują do zapytania i są dostępne dla użytkownika wywołującego.
Powiązane artykuły
- Tworzenie pokoju
- Konfigurowanie pokoju
- Sprawdzanie informacji o pokoju
- Wyświetlanie listy pokoi
- Aktualizowanie pokoju
- Usuwanie pokoju
- Wyszukiwanie pokoi i zarządzanie nimi jako administrator Google Workspace