Method: spaces.messages.search

Wyszukuje wiadomości w Google Chat, do których ma dostęp użytkownik wywołujący. Zwraca listę wiadomości spełniających kryteria wyszukiwania.

Aby przeszukać wszystkie pokoje, do których ma dostęp użytkownik, ustaw parent na spaces/-. Użycie innej wartości parent spowoduje błąd INVALID_ARGUMENT. Zwrócone wiadomości mają pole name wypełnione pełną nazwą zasobu, która zawiera konkretny space, w którym znajduje się wiadomość.

Ten interfejs API nie zwraca wszystkich typów wiadomości. Typy wiadomości wymienione poniżej nie są uwzględniane w odpowiedzi. Aby wyświetlić wszystkie wiadomości, użyj messages.list.

  • Wiadomości prywatne widoczne dla uwierzytelnionego użytkownika.
  • Wiadomości publikowane przez aplikacje Google Chat w pokojach lub czatach grupowych.
  • Wiadomości w wiadomościach bezpośrednich aplikacji Google Chat.
  • Wiadomości od zablokowanych użytkowników.
  • Wiadomości w pokojach, które zostały wyciszone przez dzwoniącego.

Wymaga uwierzytelnienia użytkownika z jednym z tych zakresów autoryzacji:

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

Żądanie HTTP

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

Adres URL używa składni transkodowania gRPC.

Parametry ścieżki

Parametry
parent

string

Wymagane. Nazwa zasobu pokoju, w którym ma być przeprowadzane wyszukiwanie.

Aby przeszukać wszystkie pokoje, do których ma dostęp użytkownik, ustaw to pole na spaces/-. Użycie innej wartości parent spowoduje błąd INVALID_ARGUMENT.

Aby ograniczyć wyszukiwanie do co najmniej 1 pokoju, użyj space.name lub space.display_name w filter.

Treść żądania

Treść żądania zawiera dane o następującej strukturze:

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

string

Wymagane. Zapytanie.

Zapytanie może zawierać co najmniej 1 słowo kluczowe, które służy do filtrowania wyników.

Wyniki możesz też filtrować za pomocą tych pól wiadomości:

  • createTime: akceptuje sygnaturę czasową w formacie RFC-3339, a obsługiwane operatory porównania to: < i >=.
  • sender.name: nazwa zasobu nadawcy (users/{user}). Obsługuje tylko =. Możesz użyć adresu e-mail jako aliasu dla {user}. Na przykład users/example@gmail.com, gdzie example@gmail.com to adres e-mail użytkownika Google Chat.
  • space.name: nazwa zasobu pokoju, w którym opublikowano wiadomość. (spaces/{space}). Obsługuje tylko =. Jeśli ten filtr nie jest ustawiony, wyszukiwanie jest przeprowadzane we wszystkich wiadomościach bezpośrednich i pokojach, do których użytkownik ma dostęp jako członek pokoju.
  • space.display_name: obsługuje operator : (zawiera) i filtruje pokoje na podstawie częściowego dopasowania ich wyświetlanej nazwy. Wyniki są ograniczone do 5 najlepiej pasujących pokoi. Na przykład space.display_name:Project wyszukuje wiadomości w 5 najlepszych pokojach, których wyświetlane nazwy zawierają słowo „Project”.
  • attachment: obsługuje operator :* (zawiera dowolny) do sprawdzania obecności załączników. Jeśli określono attachment:*, zwracane są tylko wiadomości zawierające co najmniej 1 załącznik.
  • annotations.user_mentions.user.name: nazwa zasobu wspomnianego użytkownika (users/{user}). Obsługuje tylko : (zawiera). Na przykład: annotations.user_mentions.user.name:"users/1234567890" zwraca tylko wiadomości, które zawierają wzmiankę o określonym użytkowniku. Alternatywnie możesz użyć aliasu me, aby filtrować wiadomości, które zawierają wzmiankę o użytkowniku wywołującym, np. annotations.user_mentions.user.name:users/me. Możesz też użyć adresu e-mail jako aliasu dla {user}, np. users/example@gmail.com.

W przypadku filtrowania zaawansowanego dostępne są też te funkcje:

  • has_link(): zwraca tylko wiadomości, które zawierają co najmniej 1 hiperlink w tekście.
  • is_unread(): filtruje wiadomości, które zostały przeczytane przez użytkownika wywołującego.

Używanie filtra space.display_name wymaga, aby dane logowania wywołującego zawierały jeden z tych zakresów autoryzacji:

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

Używanie filtra is_unread() wymaga, aby dane logowania wywołującego zawierały jeden z tych zakresów autoryzacji:

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

W różnych polach obsługiwane są tylko operatory AND. Prawidłowy przykład to sender.name = "users/1234567890" AND is_unread(). Słowo AND jest opcjonalne i jest domyślnie używane, jeśli je pominiesz. Na przykład sender.name = "users/1234567890" is_unread() jest prawidłowe i równoważne poprzedniemu przykładowi. Nieprawidłowy przykład to sender.name = "users/1234567890" OR is_unread(), ponieważ OR nie jest obsługiwany w przypadku różnych pól.

W tym samym polu:

  • createTime obsługuje tylko AND i może być używane tylko do reprezentowania przedziału, np. createTime >= "2022-01-01T00:00:00+00:00" AND createTime < "2023-01-01T00:00:00+00:00".
  • sender.name obsługuje tylko operator OR, np. sender.name = "users/1234567890" OR sender.name = "users/0987654321".
  • space.name obsługuje tylko operator OR, np. space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI".
  • space.display_name obsługuje operatory AND i OR, ale nie ich połączenie. Na przykład space.display_name:Project AND space.display_name:Tasks zwraca wiadomości, które znajdują się w pokojach o wyświetlanych nazwach zawierających zarówno Project, jak i Tasks, natomiast space.display_name:Project OR space.display_name:Tasks zwraca wiadomości, które znajdują się w pokojach o wyświetlanych nazwach zawierających Project lub Tasks albo oba te słowa.
  • annotations.user_mentions.user.name obsługuje operatory AND i OR, ale nie ich połączenie. Na przykład annotations.user_mentions.user.name:"users/1234567890" AND annotations.user_mentions.user.name:"users/0987654321" zwraca tylko wiadomości, które zawierają wzmiankę o obu użytkownikach, natomiast annotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321" zwraca wiadomości, które zawierają wzmiankę o jednym z tych użytkowników lub o obu.

Nawiasy są wymagane, aby jednoznacznie określić kolejność operatorów podczas łączenia operatorów AND i OR w tym samym zapytaniu. Na przykład: (sender.name="users/me" OR sender.name="users/123456") AND is_unread(). W przeciwnym razie nawiasy są opcjonalne.

Prawidłowe są te przykłady zapytań:

"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

Maksymalna długość zapytania to 1000 znaków.

Nieprawidłowe zapytania są odrzucane przez serwer z błędem INVALID_ARGUMENT.

pageSize

integer

Opcjonalnie. Maksymalna liczba wyników do zwrócenia. Usługa może zwrócić mniej wyników niż ta wartość.

Jeśli nie podasz tej wartości, zwracanych jest maksymalnie 25 wyników.

Maksymalna wartość to 100. Jeśli użyjesz wartości większej niż 100, zostanie ona automatycznie zmieniona na 100.

pageToken

string

Opcjonalnie. Token otrzymany z poprzedniego wywołania wyszukiwania wiadomości. Podaj ten parametr, aby pobrać następną stronę.

Podczas paginacji wszystkie inne podane parametry powinny być zgodne z wywołaniem, które dostarczyło token strony. Przekazanie innych wartości do pozostałych parametrów może spowodować nieoczekiwane wyniki.

orderBy

string

Opcjonalnie. Sposób sortowania listy wyników.

Obsługiwane atrybuty, według których można sortować:

  • createTime: sortuje wyniki według czasu utworzenia wiadomości. Wartość domyślna.
  • relevance: sortuje wyniki według trafności.

Domyślne sortowanie to createTime desc. Obsługiwane jest tylko 1 porządek na zapytanie (createTime lub relevance). Obsługiwane jest tylko sortowanie malejące (desc), które musi być określone po atrybucie kolejności.

view

enum (SearchMessagesView)

Opcjonalnie. Określa, jaki rodzaj widoku wyników wyszukiwania ma być zwracany. Wartość domyślna to SEARCH_MESSAGES_VIEW_BASIC.

Treść odpowiedzi

Wiadomość odpowiedzi na wyszukiwanie wiadomości.

W przypadku powodzenia treść żądania zawiera dane o następującej strukturze:

Zapis JSON
{
  "results": [
    {
      object (SearchMessageResult)
    }
  ],
  "nextPageToken": string
}
Pola
results[]

object (SearchMessageResult)

Lista wyników wyszukiwania, które pasują do zapytania.

nextPageToken

string

Token, którego można użyć do pobrania następnej strony. Jeśli to pole jest puste, nie ma kolejnych stron.

Zakresy autoryzacji

Wymaga jednego z tych zakresów OAuth:

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

Więcej informacji znajdziesz w przewodniku Autoryzacja.

SearchMessagesView

Rodzaje widoków obsługiwane w przypadku częściowych wyników wyszukiwania.

Wartości w polu enum
SEARCH_MESSAGES_VIEW_UNSPECIFIED Wartość domyślna / nieustawiona. Interfejs API domyślnie używa widoku BASIC.
SEARCH_MESSAGES_VIEW_BASIC Zawiera w wynikach tylko pasujące wiadomości, ale bez dodatkowych metadanych. Jest to wartość domyślna.
SEARCH_MESSAGES_VIEW_FULL Zawiera w wynikach wszystko: pasujące wiadomości i dodatkowe metadane.

SearchMessageResult

Pojedynczy wynik wyszukiwania wiadomości.

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

object (Message)

Pasująca wiadomość.

spaceMuteSetting

enum (MuteSetting)

Ustawienie wyciszenia pokoju przez użytkownika wywołującego, w którym opublikowano wiadomość. Aplikacja wywołująca może użyć tych informacji, aby zdecydować, jak przetworzyć wiadomość, w zależności od tego, czy pokój jest wyciszony dla użytkownika.

Zwracane tylko wtedy, gdy widok żądania to SEARCH_MESSAGES_VIEW_FULL, a dane logowania wywołującego zawierają ten zakres autoryzacji:

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

boolean

Wskazuje, czy pasująca wiadomość została przeczytana przez użytkownika wywołującego.

Zwracane tylko wtedy, gdy widok żądania to SEARCH_MESSAGES_VIEW_FULL, a dane logowania wywołującego zawierają jeden z tych zakresów autoryzacji:

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