Method: spaces.messages.search

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

Aby wyszukiwać we wszystkich pokojach, do których użytkownik ma dostęp, ustaw parent na spaces/-. Użycie innej wartości w polu parent powoduje 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. W odpowiedzi nie są uwzględniane wymienione poniżej typy wiadomości. Użyj messages.list, aby wyświetlić wszystkie wiadomości.

  • Wiadomości prywatne widoczne dla uwierzytelnionego użytkownika.
  • Wiadomości opublikowane przez aplikacje do obsługi czatu w pokojach lub czatach grupowych.
  • Wiadomości w wiadomościach bezpośrednich w aplikacji Google Chat.
  • wiadomości od zablokowanych użytkowników,
  • wiadomości w pokojach, które rozmówca wyciszył;

Wymaga uwierzytelniania 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 być przeprowadzane wyszukiwanie.

Aby wyszukiwać we wszystkich pokojach, do których użytkownik ma dostęp, ustaw to pole na spaces/-. Użycie innej wartości w polu parent powoduje błąd INVALID_ARGUMENT.

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

Treść żądania

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

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

string

Wymagane. zapytanie.

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

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

  • createTime: akceptuje sygnaturę czasową w formacie RFC-3339. Obsługiwane operatory porównania to: <>=.
  • 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 wartość =. Jeśli ten filtr nie jest ustawiony, wyszukiwanie jest przeprowadzane we wszystkich wiadomościach czatu i pokojach, do których użytkownik ma dostęp jako członek pokoju.
  • space.display_name: obsługuje operatora : (zawiera) i filtruje przestrzenie na podstawie częściowego dopasowania ich nazwy wyświetlanej. Wyniki są ograniczone do 5 najlepiej pasujących pokoi. Na przykład space.display_name:Project wyszukuje wiadomości w 5 najpopularniejszych przestrzeniach, których nazwy wyświetlane zawierają słowo „Project”.
  • space.space_type: typ miejsca. Obsługuje tylko =. Na przykład space.space_type="DIRECT_MESSAGE" zwraca tylko wiadomości z czatów. Możliwe wartości to DIRECT_MESSAGE, GROUP_CHATSPACE.
  • attachment: obsługuje operatora :* (ma dowolny), który umożliwia sprawdzenie, czy są załączniki. Jeśli podasz attachment:*, zwracane będą 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 : (has). Na przykład: annotations.user_mentions.user.name:"users/1234567890" zwraca tylko wiadomości, które zawierają wzmiankę o określonym użytkowniku. Możesz też użyć aliasu me, aby filtrować wiadomości, w których jest wzmianka o użytkowniku dzwonią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 wiadomości.
  • is_unread(): Filtruje wiadomości, które zostały przeczytane przez użytkownika wywołującego.

Korzystanie z filtrów space.display_name lub space.space_type wymaga, aby dane logowania do wywołania zawierały jeden z tych zakresów autoryzacji:

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

Użycie 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 przypadku różnych pól 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. Prawidłowa wartość to np. sender.name = "users/1234567890" is_unread(), która jest równoważna poprzedniemu przykładowi. Nieprawidłowy przykład to sender.name = "users/1234567890" OR is_unread(), ponieważ OR nie jest obsługiwany między różnymi polami.

W ramach tego samego pola:

  • createTime obsługuje tylko AND i może być używany 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 ANDOR, ale nie ich kombinację. Na przykład space.display_name:Project AND space.display_name:Tasks zwraca wiadomości z przestrzeni z wyświetlanymi nazwami zawierającymi zarówno Project, jak i Tasks, a space.display_name:Project OR space.display_name:Tasks zwraca wiadomości z przestrzeni z wyświetlanymi nazwami zawierającymi Project lub Tasks albo oba te słowa.
  • space.space_type obsługuje tylko operator OR, np. space.space_type = "DIRECT_MESSAGE" OR space.space_type = "GROUP_CHAT".
  • annotations.user_mentions.user.name obsługuje operatory ANDOR, ale nie ich kombinację. Na przykład: annotations.user_mentions.user.name:"users/1234567890" AND annotations.user_mentions.user.name:"users/0987654321" zwraca tylko wiadomości, w których wspomniani są obaj użytkownicy, a annotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321" zwraca wiadomości, w których wspomniany jest jeden z użytkowników lub obaj.

Nawiasy są wymagane do rozróżnienia kolejności operatorów podczas łączenia operatorów ANDOR w tym samym zapytaniu. Przykład: (sender.name="users/me" OR sender.name="users/123456") AND is_unread(). W przeciwnym razie nawiasy są opcjonalne.

Poniższe przykłady zapytań są prawidłowe:

"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 niż ta wartość.

Jeśli nie podano tego argumentu, 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. Przekazywanie różnych wartości do innych 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ć:

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

markupSyntax

enum (MarkupSyntax)

Opcjonalnie: Określa żądaną składnię wyjściową pola wiadomości na czacie formattedText.

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ść z 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 pasujących 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 lub nieokreślona. Interfejs API domyślnie wybierze widok PODSTAWOWY.
SEARCH_MESSAGES_VIEW_BASIC Zawiera tylko pasujące wiadomości, ale nie zawiera dodatkowych metadanych. Jest to wartość domyślna.
SEARCH_MESSAGES_VIEW_FULL Obejmuje wszystko, co znajduje się w wynikach: 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)

Dopasowana wiadomość.

spaceMuteSetting

enum (MuteSetting)

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

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

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

boolean

Wskazuje, czy dopasowana wiadomość została odczytana przez użytkownika, który nawiązał połączenie.

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

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