Method: spaces.messages.search

Arayan kullanıcının erişimi olan Google Chat mesajlarını arar. Arama ölçütleriyle eşleşen iletilerin listesini döndürür.

Kullanıcının erişimi olan tüm alanlarda arama yapmak için parent seçeneğini spaces/- olarak ayarlayın. parent için başka bir değer kullanmak INVALID_ARGUMENT hatasına neden olur. Döndürülen iletilerin name alanı, iletinin bulunduğu belirli space dahil olmak üzere tam kaynak adıyla doldurulur.

Bu API, tüm mesaj türlerini döndürmez. Aşağıda listelenen mesaj türleri yanıta dahil edilmez. Tüm iletileri listelemek için messages.list simgesini kullanın.

  • Kimliği doğrulanmış kullanıcı tarafından görülebilen özel mesajlar.
  • Chat uygulamalarının alanlarda veya grup sohbetlerinde yayınladığı mesajlar
  • Chat uygulaması DM'lerindeki mesajlar
  • Engellenen kullanıcılardan gelen mesajlar
  • Arayanın yoksaydığı alanlardaki mesajlar.

Aşağıdaki yetkilendirme kapsamlarından biriyle kullanıcı kimlik doğrulaması gerektirir:

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

HTTP isteği

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

URL, gRPC Kod Dönüştürme söz dizimini kullanır.

Yol parametreleri

Parametreler
parent

string

Zorunlu. İçinde arama yapılacak alanın kaynak adı.

Kullanıcının erişebildiği tüm alanlarda arama yapmak için bu alanı spaces/- olarak ayarlayın. parent için başka bir değer kullanmak INVALID_ARGUMENT hatasına neden olur.

Aramayı bir veya daha fazla alanla sınırlamak için filter bölümünde space.name veya space.display_name simgesini kullanın.

İstek metni

İstek içeriği aşağıdaki yapıyla birlikte verileri içerir:

JSON gösterimi
{
  "filter": string,
  "pageSize": integer,
  "pageToken": string,
  "orderBy": string,
  "view": enum (SearchMessagesView)
}
Alanlar
filter

string

Zorunlu. Arama sorgusu

Sorgu, sonuçları filtrelemek için kullanılan bir veya daha fazla arama anahtar kelimesi belirtebilir.

Ayrıca, aşağıdaki ileti alanlarını kullanarak da sonuçları filtreleyebilirsiniz:

  • createTime: RFC-3339 biçiminde bir zaman damgasını kabul eder ve desteklenen karşılaştırma operatörleri şunlardır: < ve >=.
  • sender.name: Gönderenin kaynak adı (users/{user}). Yalnızca = desteklenir. E-postayı {user} için takma ad olarak kullanabilirsiniz. Örneğin, users/example@gmail.com. Burada example@gmail.com, Google Chat kullanıcısının e-posta adresidir.
  • space.name: İletinin yayınlandığı alanın kaynak adı. (spaces/{space}). Yalnızca = desteklenir. Bu filtre ayarlanmazsa arama, kullanıcının alan üyesi olarak erişebildiği tüm doğrudan mesajlarda ve alanlarda gerçekleştirilir.
  • space.display_name: : (var) operatörünü destekler ve alanları görünen adlarının kısmi eşleşmesine göre filtreler. Sonuçlar, en iyi beş alan eşleşmesiyle sınırlıdır. Örneğin, space.display_name:Project, görünen adlarında "Proje" kelimesini içeren ilk beş alandaki mesajları arar.
  • attachment: Eklerin varlığını kontrol etmek için :* (herhangi bir) operatörünü destekler. attachment:* belirtilmişse yalnızca en az bir eki olan iletiler döndürülür.
  • annotations.user_mentions.user.name: Bahsedilen kullanıcının kaynak adı (users/{user}). Yalnızca : (var) desteklenir. Örneğin: annotations.user_mentions.user.name:"users/1234567890" yalnızca belirtilen kullanıcıdan bahseden iletileri döndürür. Alternatif olarak, arayan kullanıcıdan bahseden iletileri filtrelemek için me takma adı kullanılabilir. Örneğin: annotations.user_mentions.user.name:users/me. Ayrıca, e-posta adresini {user} için takma ad olarak da kullanabilirsiniz. Örneğin, users/example@gmail.com.

Gelişmiş filtreleme için aşağıdaki işlevler de kullanılabilir:

  • has_link(): Yalnızca ileti metninde en az bir köprü bulunan iletileri döndürür.
  • is_unread(): Arayan kullanıcı tarafından okunan mesajları filtreler.

space.display_name filtresinin kullanılması için çağırma kimlik bilgilerinin aşağıdaki yetkilendirme kapsamlarından birini içermesi gerekir:

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

is_unread() filtresinin kullanılması için çağırma kimlik bilgilerinin aşağıdaki yetkilendirme kapsamlarından birini içermesi gerekir:

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

Farklı alanlarda yalnızca AND operatörleri desteklenir. Geçerli bir örnek: sender.name = "users/1234567890" AND is_unread(). AND kelimesi isteğe bağlıdır ve atlanırsa varsayılır. Örneğin, sender.name = "users/1234567890" is_unread() geçerlidir ve önceki örnekle aynıdır. sender.name = "users/1234567890" OR is_unread() geçersiz bir örnektir. Bunun nedeni, OR sembolünün farklı alanlar arasında desteklenmemesidir.

Aynı alan içinde:

  • createTime yalnızca AND değerini destekler ve yalnızca createTime >= "2022-01-01T00:00:00+00:00" AND createTime < "2023-01-01T00:00:00+00:00" gibi bir aralığı temsil etmek için kullanılabilir.
  • sender.name yalnızca OR operatörünü destekler. Örneğin: sender.name = "users/1234567890" OR sender.name = "users/0987654321".
  • space.name yalnızca OR operatörünü destekler. Örneğin: space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI".
  • space.display_name, AND ve OR operatörlerini destekler ancak ikisinin karışımını desteklemez. Örneğin: space.display_name:Project AND space.display_name:Tasks, hem Project hem de Tasks içeren görünen adlara sahip alanlardaki iletileri döndürürken space.display_name:Project OR space.display_name:Tasks, Project veya Tasks ya da her ikisini de içeren görünen adlara sahip alanlardaki iletileri döndürür.
  • annotations.user_mentions.user.name, AND ve OR operatörlerini destekler ancak ikisinin karışımını desteklemez. Örneğin: annotations.user_mentions.user.name:"users/1234567890" AND annotations.user_mentions.user.name:"users/0987654321" yalnızca her iki kullanıcıdan da bahseden iletileri döndürürken annotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321" her iki kullanıcıdan birinden veya her ikisinden de bahseden iletileri döndürür.

Aynı sorguda AND ve OR operatörleri birleştirilirken operatör önceliğini netleştirmek için parantez kullanılması gerekir. Örneğin: (sender.name="users/me" OR sender.name="users/123456") AND is_unread(). Aksi takdirde parantez kullanmak isteğe bağlıdır.

Aşağıdaki örnek sorgular geçerlidir:

"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

Maksimum sorgu uzunluğu 1.000 karakterdir.

Geçersiz sorgular, sunucu tarafından INVALID_ARGUMENT hatasıyla reddedilir.

pageSize

integer

İsteğe bağlı. Döndürülecek maksimum sonuç sayısı. Hizmet, bu değerden daha az sonuç döndürebilir.

Belirtilmemesi halinde en fazla 25 öğe döndürülür.

Maksimum değer 100'dür. 100'den büyük bir değer kullanırsanız bu değer otomatik olarak 100 olarak değiştirilir.

pageToken

string

İsteğe bağlı. Önceki arama mesajları çağrısından alınan jeton. Sonraki sayfayı almak için bu parametreyi sağlayın.

Sayfalama yapılırken sağlanan diğer tüm parametreler, sayfa jetonunu sağlayan çağrıyla eşleşmelidir. Diğer parametrelere farklı değerler iletmek beklenmedik sonuçlara yol açabilir.

orderBy

string

İsteğe bağlı. Sonuç listesinin nasıl sıralandığı.

Sıralama için desteklenen özellikler şunlardır:

  • createTime: Sonuçları iletinin oluşturulma zamanına göre sıralar. Varsayılan değer.
  • relevance: Sonuçları alaka düzeyine göre sıralar.

Varsayılan sıralama createTime desc'dır. Sorgu başına (createTime veya relevance) yalnızca tek bir sipariş desteklenir. Yalnızca azalan sıra (desc) desteklenir ve sıra özelliğinden sonra belirtilmelidir.

view

enum (SearchMessagesView)

İsteğe bağlı. Ne tür arama sonuçları görünümünün döndürüleceğini belirtir. Varsayılan değer: SEARCH_MESSAGES_VIEW_BASIC.

Yanıt metni

İletileri arama için yanıt mesajı.

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

JSON gösterimi
{
  "results": [
    {
      object (SearchMessageResult)
    }
  ],
  "nextPageToken": string
}
Alanlar
results[]

object (SearchMessageResult)

Sorguyla eşleşen arama sonuçlarının listesi.

nextPageToken

string

Sonraki sayfayı almak için kullanılabilecek bir jeton. Bu alan boşsa sonraki sayfa yoktur.

Yetkilendirme kapsamları

Aşağıdaki OAuth kapsamlarından birini gerektirir:

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

Daha fazla bilgi için Yetkilendirme kılavuzu'na bakın.

SearchMessagesView

Kısmi arama sonuçları için desteklenen görünüm türleri.

Sıralamalar
SEARCH_MESSAGES_VIEW_UNSPECIFIED Varsayılan / ayarlanmamış değer. API, varsayılan olarak BASIC görünümüne ayarlanır.
SEARCH_MESSAGES_VIEW_BASIC Sonuçlara yalnızca eşleşen mesajlar dahil edilir, ancak ek meta veri dahil edilmez. Bu, varsayılan değerdir.
SEARCH_MESSAGES_VIEW_FULL Sonuçlardaki her şeyi (eşleşen iletiler ve ek meta veriler) içerir.

SearchMessageResult

Bir ileti aramasından elde edilen tek bir sonuç öğesi.

JSON gösterimi
{
  "message": {
    object (Message)
  },
  "spaceMuteSetting": enum (MuteSetting),
  "read": boolean
}
Alanlar
message

object (Message)

Eşleşen ileti.

spaceMuteSetting

enum (MuteSetting)

Mesajın yayınlandığı alanda, arayan kullanıcının sessize alma ayarı. Arayan uygulama, alanın kullanıcı için sessize alınıp alınmadığına bağlı olarak mesajın nasıl işleneceğine karar vermek için bu bilgileri kullanabilir.

Yalnızca istek görünümü SEARCH_MESSAGES_VIEW_FULL ise ve çağıran kimlik bilgileri aşağıdaki yetkilendirme kapsamını içeriyorsa döndürülür:

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

boolean

Eşleşen mesajın arayan kullanıcı tarafından okunup okunmadığını gösterir.

Yalnızca istek görünümü SEARCH_MESSAGES_VIEW_FULL ise ve çağıran kimlik bilgilerinde aşağıdaki yetkilendirme kapsamlarından biri varsa döndürülür:

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