In diesem Dokument wird beschrieben, wie Sie mit der Methode search für die Ressource Message der Google Chat API nach Nachrichten suchen, auf die der authentifizierte Nutzer Zugriff hat.
Mit der Nutzerauthentifizierung können Sie in allen Unterhaltungen, an denen der Nutzer teilgenommen hat, oder in einer bestimmten Unterhaltung nach Nachrichten suchen. Sie können beispielsweise nach Nachrichten suchen, die bestimmte Keywords enthalten, in denen der Nutzer erwähnt wird, die ungelesen sind oder die Anhänge haben.
In der Chat API wird eine Chat-Nachricht durch die Ressource Message dargestellt.
Während Chat-Nutzer nur Nachrichten mit Text senden können, können Chat-Apps viele andere Messaging-Funktionen nutzen, darunter das Anzeigen statischer oder interaktiver Benutzeroberflächen, das Erfassen von Informationen von Nutzern und das private Senden von Nachrichten. Weitere Informationen zu den Messaging-Funktionen, die für die Chat API verfügbar sind, finden Sie unter Google Chat-Nachrichten – Übersicht.
Vorbereitung
Node.js
- Ein Google Workspace-Konto für Unternehmen 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, einem Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Node.js.
- Autorisierungsbereich auswählen
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Gruppenbereichs mit der Google Chat API finden Sie unter Gruppenbereich erstellen. Weitere Informationen zum Erstellen von Gruppenbereichen in Chat
Python
- Ein Google Workspace-Konto für Unternehmen 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, einem Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Python.
- Autorisierungsbereich auswählen
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Gruppenbereichs mit der Google Chat API finden Sie unter Gruppenbereich erstellen. Weitere Informationen zum Erstellen von Gruppenbereichen in Chat
Java
- Ein Google Workspace-Konto für Unternehmen 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, einem Symbol und einer Beschreibung für Ihre Chat-App.
- Installieren Sie die Cloud-Clientbibliothek für Java.
- Autorisierungsbereich auswählen
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Gruppenbereichs mit der Google Chat API finden Sie unter Gruppenbereich erstellen. Weitere Informationen zum Erstellen von Gruppenbereichen in Chat
Apps Script
- Ein Google Workspace-Konto für Unternehmen 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, einem Symbol und einer Beschreibung für Ihre Chat-App.
- Erstellen Sie ein eigenständiges Apps Script-Projekt und aktivieren Sie den erweiterten Chat-Dienst.
- Autorisierungsbereich auswählen
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Gruppenbereichs mit der Google Chat API finden Sie unter Gruppenbereich erstellen. Weitere Informationen zum Erstellen von Gruppenbereichen in Chat
Nachrichten suchen
Wenn Sie nach Nachrichten mit Nutzerauthentifizierung suchen möchten, übergeben Sie Folgendes in Ihrer Anfrage:
Geben Sie den Autorisierungsbereich
chat.messages.readonlyoderchat.messagesan.Rufen Sie die Methode
SearchMessagesauf.Legen Sie
parentaufspaces/-fest, um in allen Gruppenbereichen zu suchen, in denen der Nutzer Mitglied ist. Die Verwendung eines anderen Werts führt zu einem Fehler.Geben Sie im Feld
filtereinen Suchanfragestring an. Die Anfrage kann Keywords und Filter enthalten.
Im folgenden Codebeispiel wird nach ungelesenen Nachrichten gesucht, die das Keyword „tasks“ enthalten:
Node.js
/**
* Searches for messages in Google Chat.
* @param {string} filter The search query.
*/
async function searchMessages(filter) {
const {ChatServiceClient} = require('@google-apps/chat').v1;
// Instantiates a client
const chatClient = new ChatServiceClient();
// See https://github.com/googleworkspace/node-samples/blob/main/chat/client-libraries/cloud/authentication-utils.js
// for an example of how to authenticate the request.
// Construct request
const request = {
// Parent must be "spaces/-" to search across all spaces.
parent: 'spaces/-',
filter: filter,
};
// Run request
const iterable = await chatClient.searchMessagesAsync(request);
for await (const response of iterable) {
console.log(response);
}
}
searchMessages('tasks AND is_unread()');
Python
from google.apps import chat_v1
def search_messages(filter_str: str):
"""
Searches for messages in Google Chat.
Args:
filter_str: The search query.
"""
# Create a client
client = chat_v1.ChatServiceClient()
# See https://github.com/googleworkspace/python-samples/blob/main/chat/client-libraries/cloud/authentication_utils.py
# for an example of how to authenticate the request.
# Initialize request argument
request = chat_v1.SearchMessagesRequest(
# Parent must be "spaces/-" to search across all spaces.
parent="spaces/-",
filter=filter_str
)
# Make the request
page_result = client.search_messages(request=request)
# Handle the response
for response in page_result:
print(response)
search_messages('tasks AND is_unread()')
Java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.SearchMessageResult;
import com.google.chat.v1.SearchMessagesRequest;
public class SearchMessages {
public static void main(String[] args) throws Exception {
searchMessages("tasks AND is_unread()");
}
/**
* Searches for messages in Google Chat.
*
* @param filter The search query.
*/
public static void searchMessages(String filter) 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 = ChatServiceClient.create()) {
SearchMessagesRequest request =
SearchMessagesRequest.newBuilder()
.setParent("spaces/-")
.setFilter(filter)
.build();
for (SearchMessageResult result : chatServiceClient.searchMessages(request).iterateAll()) {
System.out.println(result.getMessage().getText());
}
}
}
}
Apps Script
javascript
/**
* Searches for messages in Google Chat.
*/
function searchMessages() {
const filter = 'tasks AND is_unread()';
const url = 'https://chat.googleapis.com/v1/spaces/-/messages:search';
const request_payload = {
filter: filter
};
try {
const response = UrlFetchApp.fetch(url, {
method: 'post',
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
},
contentType: 'application/json',
payload: JSON.stringify(request_payload)
});
if (response.results) {
for (const result of response.results) {
console.log('Message text: %s', result.message.text);
}
} else {
console.log('No messages found.');
}
} catch (err) {
console.log('Failed to search messages with error: %s', err.message);
}
}
Suchfilter und ‑operatoren verwenden
Sie können Ihre Suchergebnisse mithilfe von Schlüsselwörtern, Feldern und Funktionen im Feld filter verfeinern. Weitere Informationen finden Sie unter SearchMessagesRequest.
Nach Keyword suchen
Wenn Sie nach Nachrichten suchen möchten, die bestimmten Text enthalten, geben Sie die Suchbegriffe ein. Wenn Sie beispielsweise nach ausstehenden Berichten suchen möchten, verwenden Sie pending reports.
Nach Feld suchen
Sie können die Ergebnisse nach bestimmten Nachrichten- oder Gruppenbereichsfeldern filtern. Beispiel:
create_time: Filtern Sie nach dem Zeitpunkt, zu dem die Nachricht erstellt wurde. Beispiel:create_time > "2023-01-01T00:00:00Z"sender.name: Nach dem Ressourcennamen des Absenders filtern. Beispiel:sender.name = "users/1234567890"space.name: Die Suche auf einen bestimmten Bereich beschränken. Beispiel:space.name = "spaces/ABCDEFGH"space.display_name: Filtert Bereiche basierend auf einer teilweisen Übereinstimmung ihres Anzeigenamens. Die Ergebnisse sind auf die fünf besten Übereinstimmungen beschränkt. Beispiel:space.display_name:Projectattachment: Prüfen, ob Anhänge vorhanden sind. Beispiel:attachment:*annotations.user_mentions.user.name: Nach Erwähnungen filtern. Beispiel:annotations.user_mentions.user.name:"users/me"
Mit Funktionen suchen
Erweiterte Filter sind über die folgenden Funktionen verfügbar:
has_link: Gibt Nachrichten zurück, die mindestens einen Hyperlink enthalten.is_unread: Gibt Nachrichten zurück, die vom Nutzer noch nicht gelesen wurden.
Für verschiedene Felder werden nur AND-Operatoren unterstützt. Beispiel: sender.name = "users/me" AND is_unread().
Weitere Informationen
- Nachricht formatieren
- Nachricht löschen
- Details zu einer Nachricht abrufen
- Nachrichten in einem Gruppenbereich auflisten
- Nachricht aktualisieren
- Nachricht senden: