Slack流行ってますよね。
2105年頃から業務で使っていますがこれまでのメールベースのそれとは違い直接的で素早いコミュニケーションが取れとても良いです。
これ自社でも解禁してくんないかな…
さて、今回はそのSlack上で動作するbotアプリケーションを作ってみます。
言語はPythonです(3.6以上)
簡易な辞書っぽいことができるbotアプリを作ります。
簡単ですが以下のような仕様とします
・辞書登録 {登録したい単語} {登録する文字の説明等} とSlackに投稿するとその単語をDBに登録する
・おしえて {登録した単語} とSlackに投稿すると単語の意味を返信する
・辞書リスト とSlackに投稿すると登録されている単語を返信する
なおDBはsqlite3を使ってます。
実際の業務でも稼働させていますが、ほかのメンバから手順のメモなどが登録されていたりとそこそこ有効活用されています。
では、実装に入る前にSlack上にアプリを登録しておきます。
ワークスペースにアプリを追加する
1.https://api.slack.com/にアクセスします。
2.画面右上の「Your Apps」のリンクをクリックします

3.「Create New App」をクリック

4.アプリの名前とワークスペースを選択します(アプリ名は後で変更可能です)

5.「Create App」クリック後の画面で「Bots」をクリック

6.「Add a Bot User」をクリック

7.Bot用ユーザの表示名とユーザ名を決めます(これも後で変更可能)
「Always Show My Bot as Online」はON/OFFどちらでも構いません

8.左部メニューの「Setting->Install App」をクリック->「Install App to Workspace」をクリック

9.Installをクリック

10.これでワークスペースにアプリをインストールできました。
といっても実装がないので動きませんが。
「Bot User OAuth Access Token」をコピーしておきます

実装
github上に公開しました。
DownloadなりCloneなりしてください。
こちらの記事を参考に作りました。ありがたや
設定ファイルを修正する
github上のコードのままではAPI TOKENが未設定なので動きません。
先ほどコピーした 「Bot User OAuth Access Token」 をslackbot_settings.pyの API_TOKEN に代入します。
実行する
とりあえず普通に実行する
root@test-env:~# python main.py start bot |
実行できました。
動作確認します。
とりあえず適当なチャンネルに先ほど作成したBotユーザを招待します

とりあえず適当に登録してみます

登録成功です。では、登録できているか確認してみます。

ちゃんと教えてくれました。
最後に登録している一覧を返してくれることを確認します

こんな感じで。絵文字でも辞書登録可能です。
と、いうわけで今回はPythonでSlackBotを作ってみました。
業務で稼働させているBotはこの機能以外も実装されていますがここで公開できるものでもないので今回は辞書機能の部分を抜粋しての紹介とさせていただきました。
コードも作りっぱなしでほぼメンテしてないしリファクタリングしたい。