In diesem Leitfaden wird erläutert, wie Sie mit der
search() Methode für die
Space Ressource der
Google Chat API nach benannten Gruppenbereichen in einer Google Workspace-Organisation suchen.
Die Ressource
Space stellt
einen Ort dar, an dem Nutzer und Chat-Apps Nachrichten senden, Dateien teilen und zusammenarbeiten können. Es gibt verschiedene Arten von Gruppenbereichen:
- Direktnachrichten sind Unterhaltungen zwischen zwei Nutzern oder einem Nutzer und einer Chat-App.
- Gruppenchats sind Unterhaltungen zwischen mindestens drei Nutzern und Chat-Apps.
- Benannte Gruppenbereiche sind dauerhafte Orte, an denen Nutzer Nachrichten senden, Dateien teilen und zusammenarbeiten können.
Wenn Sie Google Workspace-Administrator sind und in allen Gruppenbereichen Ihrer Organisation suchen möchten, einschließlich privater Gruppenbereiche, denen Sie nicht beigetreten sind, lesen Sie den Hilfeartikel Gruppenbereiche als Google Workspace-Administrator suchen und verwalten. Dort erfahren Sie, wie Sie die API mit Administratorberechtigungen aufrufen (useAdminAccess=true).
Wenn Sie ohne Administratorberechtigungen nach Gruppenbereichen mit Nutzerauthentifizierung suchen, werden mit der Methode benannte Gruppenbereiche (spaceType von SPACE) durchsucht, auf die der authentifizierte Nutzer Zugriff hat, z. B. Gruppenbereiche, in denen er Mitglied ist.
Vorbereitung
Node.js
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Umgebung einrichten:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Node.js.
-
Erstellen Sie Anmeldedaten für die OAuth-Client-ID für eine Desktopanwendung. Wenn Sie das Beispiel in diesem
Leitfaden ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Python
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Umgebung einrichten:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Python.
-
Erstellen Sie Anmeldedaten für die OAuth-Client-ID für eine Desktopanwendung. Wenn Sie das Beispiel in diesem
Leitfaden ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Java
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Umgebung einrichten:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Java.
-
Erstellen Sie Anmeldedaten für die OAuth-Client-ID für eine Desktopanwendung. Wenn Sie das Beispiel in diesem
Leitfaden ausführen möchten, speichern Sie die Anmeldedaten als JSON-Datei mit dem Namen
credentials.jsonin Ihrem lokalen Verzeichnis.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Apps Script
- Ein Google Workspace-Konto für Unternehmen oder Enterprise mit Zugriff auf Google Chat.
- Umgebung einrichten:
- Google Cloud-Projekt erstellen.
- OAuth-Zustimmungsbildschirm konfigurieren.
- Aktivieren und konfigurieren Sie die Google Chat API mit einem Namen, Symbol und einer Beschreibung für Ihre Chat-App.
- Erstellen Sie ein eigenständiges Apps Script-Projekt, und aktivieren Sie den erweiterten Chat-Dienst.
- Wählen Sie einen Autorisierungsbereich aus, der die Nutzerauthentifizierung unterstützt.
Mit Nutzerauthentifizierung nach Gruppenbereichen suchen
Wenn Sie ohne Administratorberechtigungen in Google Chat nach Gruppenbereichen suchen möchten, übergeben Sie Folgendes in Ihrer Anfrage:
- Geben Sie bei der Nutzerauthentifizierung den
chat.spaces.readonlyoderchat.spacesAutorisierungsbereich an. - Rufen Sie die
search()Methode für dieSpaceRessource auf. - Setzen Sie
useAdminAccessauffalseoder lassen Sie den Parameter weg. - Geben Sie die Such
queryparameter an, um die Ergebnisse zu filtern:spaceType = "SPACE": Ist erforderlich, wennqueryangegeben ist. Der einzige unterstützte Wert istSPACE.displayName– Filtern Sie nach dem Anzeigenamen des Gruppenbereichs mit dem OperatorHAS(:). Beispiel:displayName:"Project". Der abzugleichende Text wird in Tokens zerlegt. Jedes Token wird unabhängig und ohne Berücksichtigung der Groß-/Kleinschreibung als Teilstring an einer beliebigen Stelle imdisplayNamedes Gruppenbereichs mit einem Präfix abgeglichen. Hinweis: WennuseAdminAccessauffalsegesetzt ist, istdisplayNamein Ihrer Abfrage erforderlich, um aussagekräftige Ergebnisse zu erhalten. Andernfalls gibt die Methode eine leere Antwort zurück.externalUserAllowed: Optional können Sie filtern, ob externe Gäste im Gruppenbereich zulässig sind (trueoderfalse).
- Optional können Sie
pageSizeangeben, um die maximale Anzahl der zurückzugebenden Gruppenbereiche zu begrenzen (bis zu1000), oderpageToken, um nachfolgende Ergebnisseiten abzurufen. - Optional können Sie
orderByangeben, um die Suchergebnisse zu sortieren (createTime descoderrelevance desc). Hinweis:relevance descist über das Google Workspace Developer Preview Program verfügbar.
In verschiedenen Feldern in der Abfrage werden nur AND-Operatoren unterstützt. Beispiel: spaceType = "SPACE" AND displayName:"Hello" AND externalUserAllowed = "true". In displayName und externalUserAllowed werden OR-Operatoren unterstützt, wenn Sie mehrere Kriterien abgleichen möchten.
Im folgenden Beispiel wird nach benannten Gruppenbereichen gesucht, deren Anzeigename „Project“ enthält:
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);
}
}
Die Chat API gibt eine paginierte Liste von Gruppenbereichen zurück, die der Abfrage entsprechen und für den aufrufenden Nutzer zugänglich sind.
Weitere Informationen
- Gruppenbereich erstellen
- Gruppenbereich einrichten
- Details zu einem Gruppenbereich abrufen
- Gruppenbereiche auflisten
- Gruppenbereich aktualisieren
- Gruppenbereich löschen
- Gruppenbereiche als Google Workspace-Administrator suchen und verwalten