slackで会話ボットを動かしてみる方法

pythonでslack用のボットを作成する際の作業開始用のメモです。

■環境

vagrant上のcentos/7

python 3.6.0

 

■slack上での設定


App 作成

下記のslack appを作成するサイトに行き、

https://api.slack.com/slack-apps

「Create a Slack app」を押し、「App Name」を入力、Workspaceを選択、「Create App」で完了。

Bot Userを作成

Bot Usersメニューを選択し、「Display name」と「Default username」(半角小文字)を入力して「Add Bot User」で完了。

AppをWorkspaceにインストール

「Install App to Workspace」を押すだけです。

インストール完了後に表示される「Bot User OAuth Access Token」を控えておきます。

Webhookを使用する場合は

「Incoming Webhooks」メニューから、「Add New Webhook to workspace」で、チャンネルを選択して完了。

webhook追加完了後に表示される「Webhook URL」を控えておきます。

最後に、作成したBotUserを上記で設定したチャンネルに招待します。

 

■pythonからの読み書き


pythonからslackへのR/Wには下記の便利なパッケージを利用させて頂きます。

どちらでも良いですが、今回はslackclientを使用します。

slackへの接続

ざっくりこれだけです。

メッセージを読む

メッセージを読む時もざっくりこんな感じです。

text以外にもchannelやuserなど色々情報を貰えるので必要に応じて利用します。

メッセージを書き込む

書くときもこれだけで書けます。

channelは予め決めたチャンネルのIDを設定します。(受信したメッセージ中のchannelを利用してそこに返すというのでも大丈夫です。)

接続状況の確認

接続状況の確認はこのようにして行えます。

 

実行例

今回作成してみたボットの実行例です。ぼかしが多くて見にくくてすみません。

ちょっと訳の分からない事も言っていますね。もっと良くなったらまたご報告させて頂きます。