Google은 AI 기술을 사용하여 콘텐츠를 사용자의 기본 언어로 번역합니다. AI 번역에는 오류가 있을 수 있습니다.
Method: spaces.messages.search
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
호출 사용자가 액세스할 수 있는 Google Chat의 메시지를 검색합니다. 검색 기준과 일치하는 메일 목록을 반환합니다.
사용자가 액세스할 수 있는 모든 스페이스를 검색하려면 parent를 spaces/-로 설정합니다. parent에 다른 값을 사용하면 INVALID_ARGUMENT 오류가 발생합니다. 반환된 메시지의 name 필드에는 메시지가 있는 특정 space이 포함된 전체 리소스 이름이 채워져 있습니다.
이 API는 모든 메시지 유형을 반환하지 않습니다. 아래에 나열된 메시지 유형은 대답에 포함되지 않습니다. messages.list를 사용하여 모든 메시지를 나열합니다.
- 인증된 사용자에게 표시되는 비공개 메시지입니다.
- 스페이스 또는 그룹 채팅에서 Chat 앱이 게시한 메시지
- Chat 앱 DM의 메시지
- 차단된 사용자의 메시지
- 발신자가 음소거한 스페이스의 메시지
다음 승인 범위 중 하나를 사용하여 사용자 인증이 필요합니다.
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
URL은 gRPC 트랜스코딩 구문을 사용합니다.
경로 매개변수
| 매개변수 |
parent |
string
필수 항목입니다. 검색할 스페이스의 리소스 이름입니다. 사용자가 액세스할 수 있는 모든 스페이스에서 검색하려면 이 필드를 spaces/-로 설정합니다. parent에 다른 값을 사용하면 INVALID_ARGUMENT 오류가 발생합니다. 검색을 하나 이상의 스페이스로 제한하려면 filter에서 space.name 또는 space.display_name를 사용합니다.
|
요청 본문
요청 본문에는 다음과 같은 구조의 데이터가 포함됩니다.
| JSON 표현 |
{
"filter": string,
"pageSize": integer,
"pageToken": string,
"orderBy": string,
"markupSyntax": enum (MarkupSyntax),
"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: : (포함) 연산자를 지원하고 표시 이름의 부분 일치를 기반으로 스페이스를 필터링합니다. 결과는 상위 5개 공간 일치 항목으로 제한됩니다. 예를 들어 space.display_name:Project는 표시 이름에 'Project'라는 단어가 포함된 상위 5개 스페이스에서 메시지를 검색합니다.
space.space_type: 스페이스 유형입니다. =만 지원합니다. 예를 들어 space.space_type="DIRECT_MESSAGE"는 채팅 메시지의 메시지만 반환합니다. 가능한 값은 DIRECT_MESSAGE, GROUP_CHAT, SPACE입니다.
attachment: 첨부파일의 존재 여부를 확인하기 위해 :* (has any) 연산자를 지원합니다. 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 또는 space.space_type 필터를 사용하려면 호출 사용자 인증 정보에 다음 승인 범위 중 하나가 포함되어야 합니다.
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()입니다. 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(또는 둘 다)이 포함된 표시 이름이 있는 스페이스의 메시지를 반환합니다.
space.space_type은 OR 연산자만 지원합니다(예: space.space_type = "DIRECT_MESSAGE" OR space.space_type = "GROUP_CHAT").
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: 관련성을 기준으로 결과를 정렬합니다. (science 개발자 프리뷰)
기본 순서는 createTime desc입니다. 쿼리 (createTime 또는 relevance)당 하나의 순서만 지원됩니다. 내림차순 (desc)만 지원되며 순서 속성 뒤에 지정해야 합니다.
|
markupSyntax |
enum (MarkupSyntax)
선택사항입니다. 채팅 메시지 formattedText 필드의 원하는 출력 구문을 지정합니다.
|
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
|
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2026-09-19(UTC)
[null,null,["최종 업데이트: 2026-09-19(UTC)"],[],[]]