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 wyszukać we wszystkich pokojach, do których ma dostęp użytkownik, ustaw parent na spaces/-. Użycie innej wartości parent spowoduje błąd INVALID_ARGUMENT. W zwróconych wiadomościach pole name jest 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 użyciem jednego 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 się odbyć wyszukiwanie.

Aby wyszukać we wszystkich pokojach, 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. Wyszukiwane hasło.

Zapytanie może zawierać co najmniej jedno 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), który sprawdza obecność załączników. Jeśli określono attachment:*, zwracane są tylko wiadomości, które mają 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 wspominają użytkownika wywołującego, 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 go nie podasz. 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 różnych polach.

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 wspominają obu użytkowników, natomiast annotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321" zwraca wiadomości, które wspominają jednego lub obu użytkowników.

Nawiasy są wymagane, aby rozróżnić 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 prowadzić do nieoczekiwanych wyników.

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. ( Developer Preview)

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

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 po autoryzacji.

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 tylko pasujące wiadomości, ale nie zawiera dodatkowych metadanych. Jest to wartość domyślna.
SEARCH_MESSAGES_VIEW_FULL Zawiera 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 użytkownika wywołującego w pokoju, 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