Method: spaces.messages.search

Menelusuri pesan di Google Chat yang dapat diakses oleh pengguna yang melakukan panggilan. Menampilkan daftar pesan yang cocok dengan kriteria penelusuran.

Untuk menelusuri semua ruang yang dapat diakses pengguna, setel parent ke spaces/-. Menggunakan nilai lain untuk parent akan menghasilkan error INVALID_ARGUMENT. Pesan yang ditampilkan memiliki kolom name yang diisi dengan nama resource lengkap, yang mencakup space tertentu tempat pesan berada.

API ini tidak menampilkan semua jenis pesan. Jenis pesan yang tercantum di bawah tidak disertakan dalam respons. Gunakan messages.list untuk mencantumkan semua pesan.

  • Pesan Pribadi yang dapat dilihat oleh pengguna yang diautentikasi.
  • Pesan yang diposting oleh aplikasi Chat di ruang atau chat grup.
  • Pesan di DM aplikasi Chat.
  • Pesan dari pengguna yang diblokir.
  • Pesan di ruang yang telah dibisukan oleh penelepon.

Memerlukan autentikasi pengguna dengan salah satu cakupan otorisasi berikut:

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

Permintaan HTTP

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

URL ini menggunakan sintaksis gRPC Transcoding.

Parameter jalur

Parameter
parent

string

Wajib. Nama resource ruang yang akan ditelusuri.

Untuk menelusuri semua ruang yang dapat diakses pengguna, tetapkan kolom ini ke spaces/-. Menggunakan nilai lain untuk parent akan menghasilkan error INVALID_ARGUMENT.

Untuk membatasi penelusuran ke satu atau beberapa ruang, gunakan space.name atau space.display_name di filter.

Isi permintaan

Isi permintaan memuat data dengan struktur berikut:

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

string

Wajib. Kueri penelusuran.

Kueri dapat menentukan satu atau beberapa kata kunci penelusuran, yang digunakan untuk memfilter hasil,

Anda juga dapat memfilter hasil menggunakan kolom pesan berikut:

  • createTime: Menerima stempel waktu dalam format RFC-3339 dan operator perbandingan yang didukung adalah: < dan >=.
  • sender.name: Nama resource pengirim (users/{user}). Hanya mendukung =. Anda dapat menggunakan email sebagai alias untuk {user}. Misalnya, users/example@gmail.com, dengan example@gmail.com adalah email pengguna Google Chat.
  • space.name: Nama resource ruang tempat pesan diposting. (spaces/{space}). Hanya mendukung =. Jika filter ini tidak disetel, penelusuran akan dilakukan di semua pesan langsung dan ruang yang dapat diakses pengguna sebagai anggota ruang.
  • space.display_name: Mendukung operator : (memiliki) dan memfilter ruang berdasarkan kecocokan sebagian dari nama tampilannya. Hasil dibatasi hingga lima kecocokan ruang teratas. Misalnya, space.display_name:Project menelusuri pesan di lima ruang teratas yang berisi kata "Project" dalam nama tampilannya.
  • attachment: Mendukung operator :* (memiliki) untuk memeriksa keberadaan lampiran. Jika attachment:* ditentukan, hanya pesan yang memiliki setidaknya satu lampiran yang akan ditampilkan.
  • annotations.user_mentions.user.name: Nama resource pengguna yang disebutkan (users/{user}). Hanya mendukung : (memiliki). Misalnya: annotations.user_mentions.user.name:"users/1234567890" hanya menampilkan pesan yang berisi sebutan untuk pengguna tertentu. Atau, alias me dapat digunakan untuk memfilter pesan yang menyebutkan pengguna penelepon, misalnya: annotations.user_mentions.user.name:users/me. Anda juga dapat menggunakan email sebagai alias untuk {user}, misalnya, users/example@gmail.com.

Untuk pemfilteran lanjutan, fungsi berikut juga tersedia:

  • has_link(): Hanya menampilkan pesan yang memiliki setidaknya satu hyperlink dalam teks pesan.
  • is_unread(): Memfilter pesan yang telah dibaca oleh pengguna yang memanggil.

Penggunaan filter space.display_name mengharuskan kredensial panggilan menyertakan salah satu cakupan otorisasi berikut:

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

Penggunaan filter is_unread() mengharuskan kredensial panggilan menyertakan salah satu cakupan otorisasi berikut:

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

Di berbagai kolom, hanya operator AND yang didukung. Contoh yang valid adalah sender.name = "users/1234567890" AND is_unread(). Kata AND bersifat opsional dan tersirat jika tidak ada. Misalnya, sender.name = "users/1234567890" is_unread() valid dan setara dengan contoh sebelumnya. Contoh yang tidak valid adalah sender.name = "users/1234567890" OR is_unread() karena OR tidak didukung di antara kolom yang berbeda.

Di antara kolom yang sama:

  • createTime hanya mendukung AND, dan hanya dapat digunakan untuk merepresentasikan interval, seperti createTime >= "2022-01-01T00:00:00+00:00" AND createTime < "2023-01-01T00:00:00+00:00".
  • sender.name hanya mendukung operator OR, misalnya: sender.name = "users/1234567890" OR sender.name = "users/0987654321".
  • space.name hanya mendukung operator OR, misalnya: space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI".
  • space.display_name mendukung operator AND dan OR, tetapi tidak keduanya secara bersamaan. Misalnya: space.display_name:Project AND space.display_name:Tasks menampilkan pesan yang ada di ruang dengan nama tampilan yang berisi Project dan Tasks, sedangkan space.display_name:Project OR space.display_name:Tasks menampilkan pesan yang ada di ruang dengan nama tampilan yang berisi Project atau Tasks atau keduanya.
  • annotations.user_mentions.user.name mendukung operator AND dan OR, tetapi tidak keduanya secara bersamaan. Misalnya: annotations.user_mentions.user.name:"users/1234567890" AND annotations.user_mentions.user.name:"users/0987654321" hanya menampilkan pesan yang menyebutkan kedua pengguna, sedangkan annotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321" menampilkan pesan yang menyebutkan salah satu atau kedua pengguna.

Tanda kurung diperlukan untuk memperjelas prioritas operator saat menggabungkan operator AND dan OR dalam kueri yang sama. Contoh: (sender.name="users/me" OR sender.name="users/123456") AND is_unread(). Jika tidak, tanda kurung bersifat opsional.

Contoh kueri berikut valid:

"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

Panjang kueri maksimum adalah 1.000 karakter.

Kueri yang tidak valid ditolak oleh server dengan error INVALID_ARGUMENT.

pageSize

integer

Opsional. Jumlah hasil maksimum yang akan ditampilkan. Layanan mungkin menampilkan lebih sedikit dari nilai ini.

Jika tidak ditentukan, paling banyak 25 item akan ditampilkan.

Nilai maksimumnya adalah 100. Jika Anda menggunakan nilai lebih dari 100, nilai tersebut akan otomatis diubah menjadi 100.

pageToken

string

Opsional. Token, yang diterima dari panggilan search messages sebelumnya. Berikan parameter ini untuk mengambil halaman berikutnya.

Saat melakukan penomoran halaman, semua parameter lain yang diberikan harus sesuai dengan panggilan yang memberikan token halaman. Meneruskan nilai yang berbeda ke parameter lain dapat menyebabkan hasil yang tidak terduga.

orderBy

string

Opsional. Cara pengurutan daftar hasil.

Atribut yang didukung untuk mengurutkan adalah:

  • createTime: Mengurutkan hasil menurut waktu pembuatan pesan. Nilai default.
  • relevance: Mengurutkan hasil menurut relevansi.

Pengurutan defaultnya adalah createTime desc. Hanya satu pesanan per kueri (createTime atau relevance) yang didukung. Hanya urutan menurun (desc) yang didukung, dan harus ditentukan setelah atribut urutan.

view

enum (SearchMessagesView)

Opsional. Menentukan jenis tampilan hasil penelusuran yang akan ditampilkan. Defaultnya adalah SEARCH_MESSAGES_VIEW_BASIC.

Isi respons

Pesan respons untuk menelusuri pesan.

Jika berhasil, isi respons memuat data dengan struktur berikut:

Representasi JSON
{
  "results": [
    {
      object (SearchMessageResult)
    }
  ],
  "nextPageToken": string
}
Kolom
results[]

object (SearchMessageResult)

Daftar hasil penelusuran yang cocok dengan kueri.

nextPageToken

string

Token yang dapat digunakan untuk mengambil halaman berikutnya. Jika kolom ini kosong, maka tidak ada halaman berikutnya.

Cakupan otorisasi

Memerlukan salah satu cakupan OAuth berikut:

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

Untuk mengetahui informasi selengkapnya, lihat Panduan otorisasi.

SearchMessagesView

Jenis tampilan yang didukung untuk hasil penelusuran parsial.

Enum
SEARCH_MESSAGES_VIEW_UNSPECIFIED Nilai default / tidak ditetapkan. API akan menggunakan tampilan DASAR secara default.
SEARCH_MESSAGES_VIEW_BASIC Hanya menyertakan pesan yang cocok dalam hasil, tetapi tidak ada metadata tambahan. Nilai ini merupakan default.
SEARCH_MESSAGES_VIEW_FULL Mencakup semua yang ada dalam hasil: pesan yang cocok dan metadata tambahan.

SearchMessageResult

Satu item hasil dari penelusuran pesan.

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

object (Message)

Pesan yang cocok.

spaceMuteSetting

enum (MuteSetting)

Setelan senyap pengguna yang memanggil untuk ruang tempat pesan diposting. Aplikasi pemanggil dapat menggunakan informasi ini untuk memutuskan cara memproses pesan, bergantung pada apakah ruang dibisukan untuk pengguna atau tidak.

Hanya ditampilkan jika tampilan permintaan adalah SEARCH_MESSAGES_VIEW_FULL dan kredensial panggilan mencakup cakupan otorisasi berikut:

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

boolean

Menunjukkan apakah pesan yang cocok dibaca oleh pengguna yang memanggil.

Hanya ditampilkan jika tampilan permintaan adalah SEARCH_MESSAGES_VIEW_FULL dan kredensial panggilan mencakup salah satu cakupan otorisasi berikut:

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