In diesem Dokument wird erläutert, wie Sie mit der
search
Methode für die Message Ressource der Google Chat API nach Nachrichten suchen, auf die
der authentifizierte Nutzer Zugriff hat.
Bei 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, den Nutzer erwähnen, ungelesen sind oder Anhänge haben.
In der Chat API wird eine Chat-Nachricht durch die
Message Ressource 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 in der
Übersicht zu Google Chat-Nachrichten.
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.
- Autorisierungsumfang auswählen.
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereiche erstellen. Informationen zum Erstellen eines Bereichs in Chat, finden Sie in der Hilfe.
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.
- Autorisierungsumfang auswählen.
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereiche erstellen. Informationen zum Erstellen eines Bereichs in Chat, finden Sie in der Hilfe.
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.
- Autorisierungsumfang auswählen.
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereiche erstellen. Informationen zum Erstellen eines Bereichs in Chat, finden Sie in der Hilfe.
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.
- Autorisierungsumfang auswählen.
- Ein Google Chat-Bereich. Informationen zum Erstellen eines Bereichs mit der Google Chat API finden Sie unter Bereiche erstellen. Informationen zum Erstellen eines Bereichs in Chat, finden Sie in der Hilfe.
Nachrichten suchen
Wenn Sie mit der Nutzer authentifizierung nach Nachrichten suchen möchten, übergeben Sie das Folgende in Ihrer Anfrage:
Geben Sie den
chat.messages.readonlyoderchat.messagesAutorisierungsumfang an.Rufen Sie die
SearchMessagesMethode auf.Legen Sie
parentaufspaces/-fest, um in allen Bereichen zu suchen, in denen der Nutzer Mitglied ist. Jeder andere Wert führt zu einem Fehler.Geben Sie im Feld
filtereinen Abfragestring an. Die Abfrage 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 die Suchergebnisse verfeinern, indem Sie im Feld filter Keywords, Felder und Funktionen verwenden. Weitere Informationen finden Sie unter
SearchMessagesRequest.
Nach Keyword suchen
Wenn Sie nach Nachrichten suchen möchten, die bestimmten Text enthalten, geben Sie die Keywords 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 Bereichsfeldern filtern. Beispiel:
create_time: Nach der Erstellungszeit der Nachricht filtern. 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: Bereiche nach einer teilweisen Übereinstimmung ihres Anzeigenamens filtern. Die Ergebnisse sind auf die fünf besten Bereichsübereinstimmungen beschränkt. Beispiel:space.display_name:Projectattachment: Auf das Vorhandensein von Anhängen prüfen. Beispiel:attachment:*annotations.user_mentions.user.name: Nach Erwähnungen filtern. Beispiel:annotations.user_mentions.user.name:"users/me"
Mit Funktionen suchen
Über die folgenden Funktionen ist eine erweiterte Filterung möglich:
has_link: Gibt Nachrichten zurück, die mindestens einen Hyperlink enthalten.is_unread: Gibt Nachrichten zurück, die vom Nutzer 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 Bereich auflisten.
- Nachricht bearbeiten.
- Nachricht senden.