Slackのメッセージをクロールする

【連載】

簡単導入! OSS全文検索サーバFess入門

【第21回】Slackのメッセージをクロールする

[2020/01/22 07:00]菅谷 信介 ブックマーク ブックマーク

今回は、Fessを利用してSlackのメッセージを横断検索する方法を紹介します。

今回紹介する機能を使うことで、Slack内の検索に加えて、取得したメッセージをFess内に蓄積できるため、メッセージのバックアップ先としても利用することができます。

導入手順

では早速、Slackのメッセージを検索するための手順を説明していきましょう。今回は、Fess 13.4.3を使用します。

プラグインの追加

Fessを起動後、管理画面の「システム」>「プラグイン」で「インストール」をクリックして、プラグインのインストール画面を表示します。リモートタブで「fess-ds-slack-13.4.0」を選択し、「インストール」をクリックするとプラグインがインストールされます。

プラグインのインストール画面

Slackの設定

FessがSlackのメッセージを取得するために、Slackアプリを作成します。

◆Slackアプリの作成

SlackのYour Appsで「Create New App」をクリックして、Slackアプリを作成します。

「App Name」は任意の名前を設定し、「Development Slack Workspace」は検索をしたいワークスペースを指定します。

Slackアプリの作成

◆Permissionの設定

アプリ作成後、左側のメニューから「OAuth & Permissions」を選択し、「Scopes」を設定します。

「channels:history」「channels:read」「users:read」「users.profile:read」「team:read」の5つのスコープが必要になります。「Add an OAuth Scope」をクリックし、これらのスコープを選択してください。

Permissionの設定

◆アプリのインストール

同ページの上部にある「Install App to Workspace」をクリックします。以下のような権限リクエスト確認が表示されるので、内容を確認後、許可してインストールします。

アプリのインストール

インストール後に「OAuth Access Token」として表示されている文字列が後で必要になります。

クローラの設定・実行

Slackのメッセージをクロールするためにはデータストアクロールを利用します。

◆クロールの設定

Fessの管理画面を開き、「クローラ」>「データストア」と移動し、「新規作成」をクリックします。

「名前」には任意の設定名を指定し、「ハンドラ名」には「SlackDataStore」を選択します。「パラメータ」は、以下のように設定してください。

token=xoxp-************-************-************-********************************
channels=general,random

キーと値の説明は次の通りです。

キー
token Slackアプリのインストールで取得したアクセストークン
channels 検索対象チャンネル(「,」区切りでチャンネルを指定、「*all」で全てのチャンネル)

「スクリプト」は、以下のように設定します。

title=message.user + ” #” + message.channel
digest=message.text + “\n” + message.attachments
content=message.text
created=message.timestamp
timestamp=message.timestamp
url=message.permalink

スクリプトで利用可能なキーと値は、以下の通りです。「message」は、Slack上の1つのメッセージに対応します。

キー
message.text メッセージの内容
message.user メッセージを送信したユーザー名(表示名)
message.channel メッセージが送信されたチャンネル名
message.timestamp メッセージが送信された日時
message.permalink メッセージをSlack上で開くリンク
message.attachments メッセージの添付項目の要約

設定画面は次のようになります。

データストアのクロール設定画面

◆クローラの実行

「システム」 > 「スケジューラ」と移動し、「Default Crawler」のジョブを開きます。 その画面上の「今すぐ開始」をクリックして、クローラを開始します。

ジョブの状態が「実行中」から「有効」になるまで待ちます。

◆検索のテスト

Fessの検索画面を表示して、検索フォームから適当に検索してください。

Fessの検索画面で、Slackのメッセージが検索できる

Slackのメッセージが検索できることを確認できます。

* * *

今回は、Fessを利用して、Slackのメッセージを検索する方法を紹介しました。 Slackのメッセージを検索したり、バックアップ先として利用したりして、Fessを活用してみてください。

著者紹介

菅谷 信介 (Shinsuke Sugaya)

Apache PredictionIOにて、コミッター兼PMCとして活動。また、自身でもCodeLibs Projectを立ち上げ、オープンソースの全文検索サーバFessなどの開発に従事。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~ [1] AWSで機械学習を始めよう

【連載】AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~ [1] AWSで機械学習を始めよう

本連載では、「機械学習を取り入れたいが、担い手がおらず導入に踏み切れない」「機械学習の知識はある程度あるが、実装手段までは分からない」といった悩みを持つ読者が、パブリッククラウドとしてシェアの高いAWSが提供するサービスを使って、ビジネスに機械学習を取り入れていく方法を考えていきます。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る