Method: spaces.messages.search

呼び出し元のユーザーがアクセスできる Google Chat のメッセージを検索します。検索条件に一致するメッセージのリストを返します。

ユーザーがアクセスできるすべてのスペースを検索するには、parentspaces/- に設定します。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 Transcoding 構文を使用します。

パスパラメータ

パラメータ
parent

string

必須。検索範囲となるスペースのリソース名。

ユーザーがアクセスできるすべてのスペースを検索するには、このフィールドを spaces/- に設定します。parent に別の値を指定すると、INVALID_ARGUMENT エラーが発生します。

検索を 1 つ以上のスペースに限定するには、filterspace.name または space.display_name を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "filter": string,
  "pageSize": integer,
  "pageToken": string,
  "orderBy": string,
  "view": enum (SearchMessagesView)
}
フィールド
filter

string

必須。検索クエリ。

クエリでは、1 つ以上の検索キーワードを指定して結果をフィルタできます。

次のメッセージ フィールドを使用して結果をフィルタすることもできます。

  • 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)をサポートし、表示名の一部一致に基づいてスペースをフィルタします。結果は、上位 5 件のスペースの一致に限定されます。たとえば、space.display_name:Project は、表示名に「Project」という単語を含む上位 5 つのスペース内のメッセージを検索します。
  • attachment: 演算子 :*(has any)をサポートし、添付ファイルの有無を確認します。attachment:* が指定されている場合は、少なくとも 1 つの添付ファイルがあるメッセージのみが返されます。
  • 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(): メッセージ テキストに 1 つ以上のハイパーリンクがあるメッセージのみを返します。
  • 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() です。AND という単語は省略可能で、省略すると暗黙的に指定されます。たとえば、sender.name = "users/1234567890" is_unread() は有効で、前の例と同じです。無効な例は sender.name = "users/1234567890" OR is_unread() です。これは、異なるフィールド間で OR がサポートされていないためです。

同じフィールド内:

  • createTimeAND のみをサポートし、createTime >= "2022-01-01T00:00:00+00:00" AND createTime < "2023-01-01T00:00:00+00:00" などの間隔を表すためにのみ使用できます。
  • sender.nameOR 演算子のみをサポートします(例: sender.name = "users/1234567890" OR sender.name = "users/0987654321")。
  • space.nameOR 演算子のみをサポートします(例: space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI")。
  • space.display_nameAND 演算子と OR 演算子をサポートしますが、両方を組み合わせることはできません。たとえば、space.display_name:Project AND space.display_name:Tasks は、表示名に ProjectTasks の両方を含むスペース内のメッセージを返します。一方、space.display_name:Project OR space.display_name:Tasks は、表示名に Project または Tasks のいずれか、または両方を含むスペース内のメッセージを返します。
  • annotations.user_mentions.user.nameAND 演算子と 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 です。クエリごとに 1 つの順序(createTime または relevance)のみがサポートされています。降順(desc)のみがサポートされており、順序属性の後に指定する必要があります。

view

enum (SearchMessagesView)

省略可。返す検索結果ビューの種類を指定します。デフォルト値は SEARCH_MESSAGES_VIEW_BASIC です。

レスポンスの本文

メッセージを検索するためのレスポンス メッセージ。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "results": [
    {
      object (SearchMessageResult)
    }
  ],
  "nextPageToken": string
}
フィールド
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