ワークスペース内のあらゆる事について検索できる API です。この API はtoken
を除くとquery
フィールドが必須です。
query
一番重要な引数で、ここに置いたテキストでワークスペース内を検索します。スペースなどを挟んで複数のワードを置いた場合or検索(どちらかが含まれてればマッチ)します。
また、幾つかの特殊なプレフィックスが用意されており、それらを組み合わせることで効率良く結果を絞り込むことができます。
in:<channel-name>
やin:<group-name>
、in:@<user-id>
のようにin:
の後ろにチャンネル名やユーザー名などを続けることで、検索対象をそれら指定したチャンネル内や DM 内に絞り込めます。
他にfrom:
があります。これをfrom:@<user-name>
やfrom:<bot-name>
のように使う事で、その人の発言だけに絞り込めます。
ボット名での絞り込みの注意点
Slack ではボット名は割と適当に決めてchat.postMessage
から投稿できてしまいます。例えば、jun というアプリから john というボット名で投稿するといった具合です。
そのメッセージはfrom:John
でちゃんと検索できます。しかし、その後のワークスペースの管理の方法によってはfrom:john
での検索で引っかからなくなる恐れがあります。
それはjohn
というアプリをインストールした場合です。その環境になると jun アプリのアクセストークンでfrom:john
と検索してもメッセージは引っかかりません。
その環境でどうしても検索したいのであれば、john アプリで Bot Access Token を作り、それを使ってsearch.message
をリクエストするしかなくなります。
count
結果1ページ辺りのメッセージ数です。
page
何ページ目の結果を返すかどうかです。
highlight
true
を指定するとマッチした箇所のテキストが\ue000
と\ue001
で挟まれて返されます。