Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
Method: spaces.messages.search
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
搜尋通話使用者可存取的 Google Chat 訊息。傳回符合搜尋條件的郵件清單。如要搜尋使用者有權存取的所有聊天室,請將 parent 設為 spaces/-。如果 parent 使用任何其他值,就會導致 INVALID_ARGUMENT 錯誤。傳回的郵件會填入 name 欄位,其中包含完整資源名稱,包括郵件所在的特定 space。
這個 API 不會傳回所有訊息類型。回應中不會包含下列類型的訊息。使用 messages.list 列出所有訊息。
- 經過驗證的使用者可查看的私人訊息。
- Chat 應用程式在聊天室或群組通訊中張貼的訊息。
- Chat 應用程式即時訊息中的訊息。
- 封鎖對象傳送的訊息。
- 來電者已將聊天室訊息設為靜音。
需要使用者驗證,並使用下列其中一個授權範圍:
https://www.googleapis.com/auth/chat.messages.readonly
https://www.googleapis.com/auth/chat.messages
HTTP 要求
POST https://chat.googleapis.com/v1/{parent=spaces/*}/messages:search
這個網址使用 gRPC 轉碼語法。
路徑參數
| 參數 |
parent |
string
必填。要在其中搜尋的聊天室資源名稱。 如要搜尋使用者可存取的所有聊天室,請將這個欄位設為 spaces/-。如果 parent 使用任何其他值,就會導致 INVALID_ARGUMENT 錯誤。 如要將搜尋範圍限制在一或多個空間,請在 filter 中使用 space.name 或 space.display_name。
|
要求主體
要求主體會包含結構如下的資料:
| JSON 表示法 |
{
"filter": string,
"pageSize": integer,
"pageToken": string,
"orderBy": string,
"view": enum (SearchMessagesView)
} |
| 欄位 |
filter |
string
必填。搜尋查詢。 查詢可以指定一或多個搜尋關鍵字,用於篩選結果, 您也可以使用下列訊息欄位篩選結果:
createTime:接受 RFC-3339 格式的時間戳記,支援的比較運算子為:< 和 >=。
sender.name:寄件者的資源名稱 (users/{user})。僅支援 =。您可以將電子郵件做為 {user} 的別名。例如 users/example@gmail.com,其中 example@gmail.com 是 Google Chat 使用者的電子郵件地址。
space.name:訊息發布所在空間的資源名稱。(spaces/{space})。僅支援 =。如未設定這項篩選器,系統會搜尋使用者以聊天室成員身分存取的所有即時訊息和聊天室。
space.display_name:支援運算子 : (has),並根據顯示名稱的部分相符項目篩選空間。結果僅限於前五個最相符的空間。舉例來說,space.display_name:Project 會搜尋前五個空間中,顯示名稱含有「專案」一詞的訊息。
attachment:支援 :* (有任何) 運算子,可檢查是否有附件。如果指定 attachment:*,系統只會傳回至少含有一個附件的郵件。
annotations.user_mentions.user.name:提及的使用者資源名稱 (users/{user})。僅支援 : (has)。舉例來說,annotations.user_mentions.user.name:"users/1234567890" 只會傳回提及指定使用者的訊息。或者,您可以使用別名 me 篩選提及來電者使用者的訊息,例如:annotations.user_mentions.user.name:users/me。您也可以將電子郵件地址做為 {user} 的別名,例如 users/example@gmail.com。
如要進階篩選,您也可以使用下列函式:
has_link():只傳回訊息文字中至少有一個超連結的訊息。
is_unread():篩除呼叫使用者已讀取的訊息。
使用 space.display_name 篩選器時,呼叫憑證必須包含下列其中一個授權範圍:
https://www.googleapis.com/auth/chat.spaces.readonly
https://www.googleapis.com/auth/chat.spaces
使用 is_unread() 篩選器時,呼叫憑證必須包含下列其中一個授權範圍:
https://www.googleapis.com/auth/chat.users.readstate.readonly
https://www.googleapis.com/auth/chat.users.readstate
不同欄位之間僅支援 AND 運算子。有效範例為 sender.name = "users/1234567890" AND is_unread()。「the」一字為選用,如省略則為隱含。AND舉例來說,sender.name =
"users/1234567890" is_unread() 是有效值,與上一個範例相同。無效的範例是 sender.name = "users/1234567890" OR
is_unread(),因為不同欄位之間不支援 OR。 在同一欄位中:
createTime 僅支援 AND,且只能用於表示間隔,例如 createTime >= "2022-01-01T00:00:00+00:00" AND
createTime < "2023-01-01T00:00:00+00:00"。
sender.name 僅支援 OR 運算子,例如:sender.name = "users/1234567890" OR sender.name = "users/0987654321"。
space.name 僅支援 OR 運算子,例如:space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI"。
space.display_name 支援 AND 和 OR 運算子,但無法混用。舉例來說:space.display_name:Project AND space.display_name:Tasks 會傳回顯示名稱同時包含 Project 和 Tasks 的即時通訊空間中的郵件,而 space.display_name:Project OR space.display_name:Tasks 則會傳回顯示名稱包含 Project 或 Tasks 或兩者的即時通訊空間中的郵件。
annotations.user_mentions.user.name 支援 AND 和 OR 運算子,但無法混用。舉例來說,annotations.user_mentions.user.name:"users/1234567890" AND
annotations.user_mentions.user.name:"users/0987654321" 只會傳回同時提及兩位使用者的訊息,而 annotations.user_mentions.user.name:"users/1234567890" OR
annotations.user_mentions.user.name:"users/0987654321" 則會傳回提及其中一位使用者或兩位使用者的訊息。
在同一個查詢中合併 AND 和 OR 運算子時,必須使用括號來消除運算子優先順序的歧義。例如:(sender.name="users/me" OR sender.name="users/123456") AND is_unread()。否則括號為選用。 以下是有效查詢的範例:
"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
查詢長度上限為 1,000 個字元。 伺服器會拒絕無效查詢,並傳回 INVALID_ARGUMENT 錯誤。
|
pageSize |
integer
(選用步驟) 要傳回的結果數上限。服務傳回的產品數量可能會少於這個值。 如未指定,最多會傳回 25 個。 值的上限為 100。如果使用超過 100 的值,系統會自動變更為 100。
|
pageToken |
string
(選用步驟) 這是從先前的搜尋訊息呼叫接收的權杖。提供此參數即可擷取後續網頁。 進行分頁時,提供的所有其他參數應與提供網頁權杖的呼叫相符。將不同值傳遞至其他參數可能會導致非預期的結果。
|
orderBy |
string
(選用步驟) 結果清單的排序方式。 支援的排序依據屬性如下:
createTime:依訊息建立時間排序結果。預設值。
relevance:依關聯性排序結果。
預設排序方式為 createTime desc。每個查詢 (createTime 或 relevance) 僅支援單一順序。系統僅支援遞減順序 (desc),且必須在排序屬性後指定。
|
view |
enum (SearchMessagesView)
(選用步驟) 指定要傳回哪種搜尋結果檢視畫面。預設為 SEARCH_MESSAGES_VIEW_BASIC。
|
回應主體
用於搜尋訊息的回應訊息。
如果成功,回應主體會含有以下結構的資料:
| 欄位 |
results[] |
object (SearchMessageResult)
符合查詢的搜尋結果清單。
|
nextPageToken |
string
可用於擷取下一頁的權杖。如果這個欄位留空,表示沒有後續網頁。
|
授權範圍
需要下列其中一種 OAuth 範圍:
https://www.googleapis.com/auth/chat.messages
https://www.googleapis.com/auth/chat.messages.readonly
詳情請參閱授權指南。
SearchMessagesView
| 列舉 |
SEARCH_MESSAGES_VIEW_UNSPECIFIED |
預設 / 未設定值。API 預設會顯示 BASIC 檢視畫面。 |
SEARCH_MESSAGES_VIEW_BASIC |
搜尋結果只會顯示相符的郵件,不會顯示額外中繼資料。這是預設值。 |
SEARCH_MESSAGES_VIEW_FULL |
包括結果中的所有內容:相符的郵件和額外中繼資料。 |
SearchMessageResult
| JSON 表示法 |
{
"message": {
object (Message)
},
"spaceMuteSetting": enum (MuteSetting),
"read": boolean
} |
| 欄位 |
message |
object (Message)
相符的訊息。
|
spaceMuteSetting |
enum (MuteSetting)
張貼訊息的聊天室中,通話使用者的靜音設定。來電應用程式可根據聊天室是否已對使用者靜音,決定如何處理訊息。 只有在要求檢視畫面為 SEARCH_MESSAGES_VIEW_FULL,且呼叫憑證包含下列授權範圍時,才會傳回這項資訊:
https://www.googleapis.com/auth/chat.users.spacesettings
|
read |
boolean
指出相符訊息是否已由通話使用者讀取。 只有在要求檢視畫面為 SEARCH_MESSAGES_VIEW_FULL,且呼叫憑證包含下列其中一個授權範圍時,才會傳回這項屬性:
https://www.googleapis.com/auth/chat.users.readstate.readonly
https://www.googleapis.com/auth/chat.users.readstate
|
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2026-05-13 (世界標準時間)。
[null,null,["上次更新時間:2026-05-13 (世界標準時間)。"],[],[]]