Questo documento spiega come utilizzare il
search
metodo sulla risorsa Message dell'API Google Chat per cercare i messaggi a cui
l'utente autenticato ha accesso.
Con l'autenticazione utente, puoi cercare i messaggi in tutte le conversazioni a cui l'utente ha partecipato o all'interno di una conversazione specifica. Ad esempio, puoi cercare i messaggi che contengono parole chiave specifiche, menzionano l'utente, non sono stati letti o hanno allegati.
Nell'API Chat, un messaggio chat è rappresentato dalla
Message risorsa.
Sebbene gli utenti di Chat possano inviare solo messaggi che contengono testo, le app Chat possono utilizzare molte altre funzionalità di messaggistica, tra cui la visualizzazione di interfacce utente statiche o interattive, la raccolta di informazioni dagli utenti e la consegna di messaggi privati. Per saperne di più sulle funzionalità di messaggistica
disponibili per l'API Chat, consulta la
panoramica dei messaggi di Google Chat.
Prerequisiti
Node.js
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Configura l'ambiente:
- Crea un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Attiva e configura l'API Google Chat con un nome, un'icona e una descrizione per la tua app Chat.
- Installa la libreria client di Node.js Cloud.
- Scegli un ambito di autorizzazione.
- Uno spazio di Google Chat. Per crearne uno utilizzando l'API Google Chat, consulta Creare uno spazio. Per crearne uno in Chat, visita la documentazione del Centro assistenza.
Python
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Configura l'ambiente:
- Crea un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Attiva e configura l'API Google Chat con un nome, un'icona e una descrizione per la tua app Chat.
- Installa la libreria client di Python Cloud.
- Scegli un ambito di autorizzazione.
- Uno spazio di Google Chat. Per crearne uno utilizzando l'API Google Chat, consulta Creare uno spazio. Per crearne uno in Chat, visita la documentazione del Centro assistenza.
Java
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Configura l'ambiente:
- Crea un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Attiva e configura l'API Google Chat con un nome, un'icona e una descrizione per la tua app Chat.
- Installa la libreria client di Java Cloud.
- Scegli un ambito di autorizzazione.
- Uno spazio di Google Chat. Per crearne uno utilizzando l'API Google Chat, consulta Creare uno spazio. Per crearne uno in Chat, visita la documentazione del Centro assistenza.
Apps Script
- Un account Google Workspace Business o Enterprise con accesso a Google Chat.
- Configura l'ambiente:
- Crea un progetto Google Cloud.
- Configura la schermata per il consenso OAuth.
- Attiva e configura l'API Google Chat con un nome, un'icona e una descrizione per la tua app Chat.
- Crea un progetto Apps Script autonomo, e attiva il servizio Chat avanzato.
- Scegli un ambito di autorizzazione.
- Uno spazio di Google Chat. Per crearne uno utilizzando l'API Google Chat, consulta Creare uno spazio. Per crearne uno in Chat, visita la documentazione del Centro assistenza.
Cercare messaggi
Per cercare i messoria con utente autenticazione, trasmetti quanto segue nella richiesta:
Specifica l'ambito di autorizzazione
chat.messages.readonlyochat.messages.Chiama il
SearchMessagesmetodo.Imposta
parentsuspaces/-per eseguire la ricerca in tutti gli spazi di cui l'utente è membro. L'utilizzo di qualsiasi altro valore genera un errore.Nel campo
filter, specifica una stringa di query di ricerca. La query può includere parole chiave e filtri.
Il seguente esempio di codice cerca i messaggi non letti che contengono la parola chiave "tasks":
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);
}
}
Utilizzare filtri e operatori di ricerca
Puoi perfezionare i risultati di ricerca utilizzando parole chiave, campi e funzioni nel campo filter. Per saperne di più, consulta
SearchMessagesRequest.
Cercare per parola chiave
Per cercare i messaggi che contengono un testo specifico, inserisci le parole chiave. Ad esempio, per cercare i report in attesa, utilizza pending reports.
Cercare per campo
Puoi filtrare i risultati in base a campi specifici di messaggi o spazi. Ad esempio:
create_time: filtra in base all'ora di creazione del messaggio. Esempio:create_time > "2023-01-01T00:00:00Z"sender.name: filtra in base al nome della risorsa del mittente. Esempio:sender.name = "users/1234567890"space.name: limita la ricerca a uno spazio specifico. Esempio:space.name = "spaces/ABCDEFGH"space.display_name: filtra gli spazi in base a una corrispondenza parziale del nome visualizzato. I risultati sono limitati alle prime cinque corrispondenze di spazi. Esempio:space.display_name:Projectattachment: verifica la presenza di allegati. Esempio:attachment:*annotations.user_mentions.user.name: filtra in base alle menzioni. Esempio:annotations.user_mentions.user.name:"users/me"
Cercare utilizzando le funzioni
Il filtro avanzato è disponibile tramite le seguenti funzioni:
has_link: restituisce i messaggi che contengono almeno un link ipertestuale.is_unread: restituisce i messaggi che non sono stati letti dall'utente.
Tra i diversi campi sono supportati solo gli operatori AND. Ad esempio:
sender.name = "users/me" AND is_unread().
Argomenti correlati
- Formattare un messaggio.
- Eliminare un messaggio.
- Visualizzare i dettagli di un messaggio.
- Elencare i messaggi in uno spazio.
- Aggiornare un messaggio.
- Inviare un messaggio.