文系のIT遊記

「そもそもITって何?」と思っていた28歳♀のIT関係勉強記。

Pythonを使ってSlack bot作りに挑戦!!〜コードを書こう!編〜【プログラミング超初心者】

Pythonを使ってSlack bot作りに挑戦!いよいよコードを書きます!

 Slack botを作ってみたい!!

 ただその一心で突撃した挑戦ですが、いよいよSlack側の設定が終わりました!

 ここからは、ついにSlackbotの中身となるコードを書いていきます。

Slack botのコードを書く前に…まずはファイルの準備から!

 コードを用意するためには、そのコードを収納しておく場所が必要になります。

 まず、デスクトップなどに「Slack_bot」ファイルを作成します。

 次に、PycharmやSpyderを起動し、ファイルを開きます。

 「Slack_bot」ファイルの下位にいくつかファイルを作成します。

 下のような画面で「slack_bot」ファイルを右クリックし、「new」を選択して新規ファイルを作成していきます。

 「plugins」にはさらに下位に「sample.py」が入ります。

 Slack_bot

 →plugins

   →sample.py

 →run.py

 →slackbot_settings.py

こんな感じ

まだ中身は空っぽですが、ここにコードを書いていきます。

ターミナル起動!!

 ここでようやくターミナルの出番です。

 Slack bot ライブラリをインストールします。

 「pip install slackbot」を入力して「Enter」。

 これでSlack botを作るために必要なライブラリがインストールできました!

 (ちなみに、Pythonだからといって最初に「Python」と入力して「Enter」をしてしまうと動かなくなるので注意しましょう。もしもやってしまった人は、終了してもう一度やり直します。)

Slack botのコードは、書くというよりほぼコピペ!

 ここから、先ほどのファイルに中身を入れていきます。

run.py

from slackbot.bot import Bot

def main():
bot = Bot()
bot.run()

if __name__ == "__main__":
print('start slackbot')
main()

 run.pyファイルに入れる必要があるコードはこれだけです。

 なんか、試験の時に見たようなコード。シンプルです。

 「start slackbot」と出力されて、botが動き始めるよ〜という感じの内容ですかね。

slackbot_settings.py

#coding:  utf-8
# botアカウントのトークンを指定
API_TOKEN = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# このbot宛のメッセージで、どの応答にも当てはまらない場合の応答文字列
DEFAULT_REPLY = "すみません、よくわかりません。"

# プラグインスクリプトを置いてあるサブディレクトリ名のリスト
PLUGINS = ["plugins"]

 ここで、準備編の記事で登場した「APIトークン」が必要になります。

 Slack側で設定したアプリのAPIトークンを、"xxxxxxxxxxxxxxxxxxxxxx"の部分に貼り付けます。

 「DEFAULT_REPLY」には、何か言われた時のデフォルトの返事を入れておきます。なんでもいいです。

 私はgoogleさんみたいな言い方がいいなと思ったので、上記のように設定。ちょっとワクワクしますね!

sample.py

 ここに、具体的な動きを書き入れていきます。

 まずは、

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

 これでslack botが言葉に反応するようになります。

 「responded_to」がメンション(@botの名前)をつけて話しかけると反応。

 「listen_to」はメンションがなくても反応します。

 メンションありで反応する「responded_to」の方はこんな感じ。これもGitHub(だっかな…)からコピペして、反応する言葉の中身だけ変えてます。サムアップ(いいねのマーク)もつけてくれる仕様みたい。

@respond_to('おはよー', re.IGNORECASE)
def hi(message):
message.reply('おはよう!今日も頑張ろうね!')
# react with thumb up emoji
message.react('+1')

 メンションなしでも反応する「listen_to」の方は、何もいじってないので、コピーしてきた英語のまま。

@listen_to('Can someone help me?')
def help(message):
# Message is replied to the sender (prefixed with @user)
message.reply('Yes, I can!')

# Message is sent on the channel
message.send('I can help everybody!')

 助けてくれない?っていう言葉に反応するbot。

 これも中身を「'  '」で囲まれている文を変えれば好きなように設定できます。

Slack botを動かしてみよう!!

 ここまで中身が揃えば、もう動きます!

 ターミナルに「python run.py」と入力して「Enter」を押します。

 うまくいっていれば「start slackbot」と出力されて走り始めるはずです!!

 Slackbotの作成結果 

お疲れさまでした!

 皆さんの記事を参考にして作ってみたものの、うんともすんとも言わなくて泣きそうになりましたが、なんとか動いてくれました…!

 簡単なものかもしれないけれど、実際に動くとすごく嬉しい!!

 この嬉しさを分かち合いたいので、プログラミングを始めたばかりの方もぜひ諦めずに挑戦してみてください!

 次はもう少しアレンジしてみたSlack botについて書いていきたいと思います。