Method: spaces.messages.search

Cerca i messaggi in Google Chat a cui l'utente chiamante ha accesso. Restituisce un elenco di messaggi che corrispondono ai criteri di ricerca.

Per eseguire la ricerca in tutti gli spazi a cui l'utente ha accesso, imposta parent su spaces/-. L'utilizzo di qualsiasi altro valore per parent genera un errore INVALID_ARGUMENT. Il campo name dei messaggi restituiti è compilato con il nome completo della risorsa, che include lo spazio specifico space in cui si trova il messaggio.

Questa API non restituisce tutti i tipi di messaggi. I tipi di messaggi elencati di seguito non sono inclusi nella risposta. Utilizza messages.list per elencare tutti i messaggi.

  • Messaggi privati visibili all'utente autenticato.
  • Messaggi pubblicati dalle app di chat negli spazi o nelle chat di gruppo.
  • Messaggi in un messaggio diretto dell'app di chat.
  • Messaggi provenienti da utenti bloccati.
  • Messaggi negli spazi che il chiamante ha silenziato.

Richiede l'autenticazione utente con uno dei seguenti ambiti di autorizzazione:

  • https://www.googleapis.com/auth/chat.messages.readonly
  • https://www.googleapis.com/auth/chat.messages

Richiesta HTTP

POST https://chat.googleapis.com/v1/{parent=spaces/*}/messages:search

L'URL utilizza la sintassi di transcodifica gRPC.

Parametri del percorso

Parametri
parent

string

Obbligatorio. Il nome della risorsa dello spazio in cui eseguire la ricerca.

Per eseguire la ricerca in tutti gli spazi a cui l'utente ha accesso, imposta questo campo su spaces/-. L'utilizzo di qualsiasi altro valore per parent genera un errore INVALID_ARGUMENT.

Per limitare la ricerca a uno o più spazi, utilizza space.name o space.display_name in filter.

Corpo della richiesta

Il corpo della richiesta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "filter": string,
  "pageSize": integer,
  "pageToken": string,
  "orderBy": string,
  "view": enum (SearchMessagesView)
}
Campi
filter

string

Obbligatorio. Una query di ricerca.

La query può specificare una o più parole chiave di ricerca, che vengono utilizzate per filtrare i risultati.

Puoi anche filtrare i risultati utilizzando i seguenti campi del messaggio:

  • createTime: accetta un timestamp nel formato RFC-3339 e gli operatori di confronto supportati sono: < e >=.
  • sender.name: il nome della risorsa del mittente (users/{user}). Supporta solo =. Puoi utilizzare l'email come alias per {user}. Ad esempio, users/example@gmail.com, dove example@gmail.com è l'email dell'utente di Google Chat.
  • space.name: Il nome della risorsa dello spazio in cui viene pubblicato il messaggio. (spaces/{space}). Supporta solo =. Se questo filtro non è impostato, la ricerca viene eseguita in tutti i messaggi diretti e gli spazi a cui l'utente ha accesso in qualità di membro dello spazio.
  • space.display_name: supporta l'operatore : (contiene) e filtra gli spazi in base a una corrispondenza parziale del nome visualizzato. I risultati sono limitati alle prime cinque corrispondenze di spazi. Ad esempio, space.display_name:Project cerca i messaggi nei primi cinque spazi che contengono la parola "Progetto" nei nomi visualizzati.
  • attachment: supporta l'operatore :* (contiene) per verificare la presenza di allegati. Se viene specificato attachment:*, vengono restituiti solo i messaggi con almeno un allegato.
  • annotations.user_mentions.user.name: Il nome della risorsa dell'utente menzionato (users/{user}). Supporta solo : (ha). Ad esempio: annotations.user_mentions.user.name:"users/1234567890" restituisce solo i messaggi che contengono una menzione dell'utente specificato. In alternativa, l'alias me può essere utilizzato per filtrare i messaggi che menzionano l'utente chiamante, ad esempio: annotations.user_mentions.user.name:users/me. Puoi anche utilizzare l'email come alias per {user}, ad esempio users/example@gmail.com.

Per il filtro avanzato, sono disponibili anche le seguenti funzioni:

  • has_link(): restituisce solo i messaggi che contengono almeno un link ipertestuale nel testo del messaggio.
  • is_unread(): Filtra i messaggi che sono stati letti dall'utente chiamante.

L'utilizzo del filtro space.display_name richiede che le credenziali di chiamata includano uno dei seguenti ambiti di autorizzazione:

  • https://www.googleapis.com/auth/chat.spaces.readonly
  • https://www.googleapis.com/auth/chat.spaces

L'utilizzo del filtro is_unread() richiede che le credenziali di chiamata includano uno dei seguenti ambiti di autorizzazione:

  • https://www.googleapis.com/auth/chat.users.readstate.readonly
  • https://www.googleapis.com/auth/chat.users.readstate

Nei diversi campi sono supportati solo gli operatori AND. Un esempio valido è sender.name = "users/1234567890" AND is_unread(). La parola AND è facoltativa e viene sottintesa se omessa. Ad esempio, sender.name = "users/1234567890" is_unread() è valido ed equivale all'esempio precedente. Un esempio non valido è sender.name = "users/1234567890" OR is_unread() perché OR non è supportato tra campi diversi.

All'interno dello stesso campo:

  • createTime supporta solo AND e può essere utilizzato solo per rappresentare un intervallo, ad esempio createTime >= "2022-01-01T00:00:00+00:00" AND createTime < "2023-01-01T00:00:00+00:00".
  • sender.name supporta solo l'operatore OR, ad esempio: sender.name = "users/1234567890" OR sender.name = "users/0987654321".
  • space.name supporta solo l'operatore OR, ad esempio: space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI".
  • space.display_name supporta gli operatori AND e OR, ma non una combinazione di entrambi. Ad esempio: space.display_name:Project AND space.display_name:Tasks restituisce i messaggi che si trovano in spazi con nomi visualizzati contenenti sia Project sia Tasks, mentre space.display_name:Project OR space.display_name:Tasks restituisce i messaggi che si trovano in spazi con nomi visualizzati contenenti Project o Tasks o entrambi.
  • annotations.user_mentions.user.name supporta gli operatori AND e OR, ma non una combinazione di entrambi. Ad esempio: annotations.user_mentions.user.name:"users/1234567890" AND annotations.user_mentions.user.name:"users/0987654321" restituisce solo i messaggi che menzionano entrambi gli utenti, mentre annotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321" restituisce i messaggi che menzionano uno o entrambi gli utenti.

Le parentesi sono necessarie per disambiguare la precedenza degli operatori quando si combinano gli operatori AND e OR nella stessa query. Ad esempio (sender.name="users/me" OR sender.name="users/123456") AND is_unread(). In caso contrario, le parentesi sono facoltative.

Le seguenti query di esempio sono valide:

"Pending reports" AND createTime >= "2023-01-01T00:00:00Z"

sender.name = "users/example@gmail.com"

annotations.user_mentions.user.name:"users/0987654321"

attachment:* AND space.name = "spaces/ABCDEFGH"

tasks AND is_unread() AND sender.name = "users/1234567890"

"things to do" "urgent"

(sender.name = "users/1234567890")
AND (createTime < "2023-05-01T00:00:00Z")

tasks AND space.name = "spaces/ABCDEFGH" AND has_link()

"project one" is_unread()

space.display_name:Project tasks

La lunghezza massima della query è di 1000 caratteri.

Le query non valide vengono rifiutate dal server con un errore INVALID_ARGUMENT.

pageSize

integer

Facoltativo. Il numero massimo di risultati da restituire. Il servizio potrebbe restituire un numero inferiore a questo valore.

Se non specificato, vengono restituiti al massimo 25 risultati.

Il valore massimo è 100. Se utilizzi un valore superiore a 100, questo viene automaticamente modificato in 100.

pageToken

string

Facoltativo. Un token ricevuto dalla precedente chiamata di ricerca dei messaggi. Fornisci questo parametro per recuperare la pagina successiva.

Durante la paginazione, tutti gli altri parametri forniti devono corrispondere alla chiamata che ha fornito il token di pagina. Il passaggio di valori diversi agli altri parametri potrebbe portare a risultati imprevisti.

orderBy

string

Facoltativo. Come viene ordinato l'elenco dei risultati.

Gli attributi supportati per l'ordinamento sono:

  • createTime: ordina i risultati in base all'ora di creazione del messaggio. Valore predefinito.
  • relevance: ordina i risultati per pertinenza.

L'ordinamento predefinito è createTime desc. È supportato un solo ordine per query (createTime o relevance). È supportato solo l'ordine decrescente (desc), che deve essere specificato dopo l'attributo di ordinamento.

view

enum (SearchMessagesView)

Facoltativo. Specifica il tipo di visualizzazione dei risultati di ricerca da restituire. Il valore predefinito è SEARCH_MESSAGES_VIEW_BASIC.

Corpo della risposta

Messaggio di risposta per la ricerca di messaggi.

In caso di esito positivo, il corpo della risposta contiene dati con la seguente struttura:

Rappresentazione JSON
{
  "results": [
    {
      object (SearchMessageResult)
    }
  ],
  "nextPageToken": string
}
Campi
results[]

object (SearchMessageResult)

L'elenco dei risultati di ricerca che corrispondono alla query.

nextPageToken

string

Un token che può essere utilizzato per recuperare la pagina successiva. Se questo campo è vuoto, non verranno visualizzate altre pagine.

Ambiti di autorizzazione

Richiede uno dei seguenti ambiti OAuth:

  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.readonly

Per ulteriori informazioni, consulta la Guida all'autorizzazione.

SearchMessagesView

I tipi di visualizzazione supportati per i risultati di ricerca parziali.

Enum
SEARCH_MESSAGES_VIEW_UNSPECIFIED Il valore predefinito / non impostato. L'API utilizzerà la visualizzazione BASIC per impostazione predefinita.
SEARCH_MESSAGES_VIEW_BASIC Include solo i messaggi corrispondenti nei risultati, ma nessun metadato aggiuntivo. Questo è il valore predefinito.
SEARCH_MESSAGES_VIEW_FULL Include tutto ciò che è presente nei risultati: i messaggi corrispondenti e i metadati aggiuntivi.

SearchMessageResult

Un singolo elemento dei risultati di una ricerca di messaggi.

Rappresentazione JSON
{
  "message": {
    object (Message)
  },
  "spaceMuteSetting": enum (MuteSetting),
  "read": boolean
}
Campi
message

object (Message)

Il messaggio corrispondente.

spaceMuteSetting

enum (MuteSetting)

L'impostazione di disattivazione dell'audio dell'utente chiamante per lo spazio in cui viene pubblicato il messaggio. L'app chiamante può utilizzare queste informazioni per decidere come elaborare il messaggio a seconda che lo spazio sia disattivato per l'utente o meno.

Restituito solo se la visualizzazione della richiesta è SEARCH_MESSAGES_VIEW_FULL e le credenziali di chiamata includono il seguente ambito di autorizzazione:

  • https://www.googleapis.com/auth/chat.users.spacesettings
read

boolean

Indica se il messaggio corrispondente è stato letto dall'utente chiamante.

Restituito solo se la visualizzazione della richiesta è SEARCH_MESSAGES_VIEW_FULL e le credenziali di chiamata includono uno dei seguenti ambiti di autorizzazione:

  • https://www.googleapis.com/auth/chat.users.readstate.readonly
  • https://www.googleapis.com/auth/chat.users.readstate