序・SlackBotを作ります

はじめに

この投稿はチームスピリット Advent Calendar 2017 - Adventarの8日目の記事になります。 adventar.org

ほろ酔いてっく向けのネタのためにやる。
Slackってフロントエンドだよね。ブラウザから使うし間違いない!
CTFでもちょこちょこ使うPythonの勉強がてらPython3で挑戦します。

今回使うもの

SlackBot
github.com

それでは開始

Python3のインストール

# brewでinstall
brew install python3

# 確認
python3 -V

SlackBotのインストール

# pipのアップデート
pip3 install --upgrade pip 

# SlackBotを入れる
sudo pip3 install slackbot

Slack側のBotアカウントの作成

ここでBotアカウントの作成する
https://my.slack.com/services/new/bot

  • API Tokenをメモる(トークンは公開しちゃダメ!
  • 作ったBotアカウントを呼びたいチャンネルに招待しておく

Bot側でSlackBotの作成

基本的にはREADMEを読み進めていく感じ
はじめにslackbot_settings.pyrun.pyを作る

# ディレクトリ作って
mkdir slackbot
cd slackbot

# ファイルを作る
touch slcakbot_settings.py run.py
mkdir plugins
cd plugins
touch __init__.py response.py

slackbot_settings.py にてメモったAPI Tokenを貼る

# SlackBot API Token
API_TOKEN = "<your-api-token>"

# Defalut Replyはココ
DEFAULT_REPLY = "Sorry but I didn't understand you"

# Plugin Directory
PLUGINS = ['plugins']

response.py に返事をしてほしいことをいろいろ書く

from slackbot.bot import respond_to
from slackbot.bot import listen_to
import re

@respond_to('hi', re.IGNORECASE)
def hi(message):
    message.reply('I can understand hi or HI!')
    # 絵文字のリアクション
    message.react('+1')

@respond_to('I love you')
def love(message):
    message.reply('I love you too!')

@listen_to('Can someone help me?')
def help(message):
    # メンションをつけてくれます
    message.reply('Yes, I can!')

    # チャンネルに向けて発言してくれます
    message.send('I can help everybody!')

    # スレッドで返信
    message.reply("Here's a threaded reply", in_thread=True)

Botの起動

python3 run.py

話しかけてみる

f:id:riririusei99:20171208014053p:plain

まとめ

意外とさっくりできた。
ブログにまとめるのが時間かかってるので、もう少し気楽に書こう。
もう少しいろいろカスタマイズして楽しいBot遊びをしたい。

次回はAPI連携とオリジナル感を出したい。

おわり