職場でSlackを使っているのですが、「同じような定期連絡を定期でつぶやくのがめんどくさい...。自動化したい!」ということで、PythonでSlackBotを開発することにしました!今日から複数回に渡ってPythonで自動でSlack通知・受け応えをしてくれるSlack-Botを開発する方法をご紹介していこうと思います。
非エンジニアの方でも真似すれば実装できるように紹介していくので、「日々のSlack投稿自動化したい!」という方はぜひ参考にしてみてください!
今回は、Slack上でBotに話しかけたらデフォルトの回答をしてくれるまで実装していきます。
SlackでBotの作成
まずは、SlackアプリケーションにアクセスしてSlackでBotを作成していきます。
「Bots」を検索して、選択します。
Botsのページに遷移するので、「Add Configuration」をクリックします。
Botsの名前を入力して、「Add Bot Integration」をクリックします。
遷移先でAPIトークンが確認できるので、これをメモっておきましょう。このAPIトークンは他人に知られてしまうとSlackに自由に投稿されたりしてしまうので、他人には知られないように注意してください。
同じページで下にスクロールしていくと、「Customize icon」という画像をアップロードできる箇所があるので、そこでbotの画像を登録し、「Save Integration」をクリックします。
ここまででSlack側の設定はOKです。
PythonでSlackBotの実装
次に、PythonでSlackBotの実装を進めていきます。Pythonの環境構築ができていない方はこちら ↓ を参考にPythonを実行できる環境構築をしておいてください。
環境構築ができたら、Botアプリケーションを作りたいディレクトリに移動して、まずは以下のコマンドを打ってSlackBotをインストールします。
$ pip install slackbot ... Successfully built slacker Installing collected packages: chardet, urllib3, idna, certifi, requests, slacker, websocket-client, slackbot Successfully installed certifi-2018.1.18 chardet-3.0.4 idna-2.6 requests-2.18.4 slackbot-0.5.1 slacker-0.9.65 urllib3-1.22 websocket-client-0.47.0
↑のように、「Successfully built slacker」と表示されればインストール成功です。
次に、以下のコマンドをTerminalに打ち込んで、ファイルを作成します。
$ touch slackbot_settings.py $ touch run.py
作成したファイルに、それぞれ以下のように記述をしていきます。API_TOKENのxxxxxxxには、自分のSlackのAPIトークンを貼り付けます。
slackbot_settings.py
API_TOKEN = "xxxxxxx" DEFAULT_REPLY = "HEY!!!"
「DEFAULT_REPLY = "HEY!!!"」と記述していますが、ここの文字列を変えることで、Botに話しかけた時に返答してくれる内容を変えることができます。
run.py
from slackbot.bot import Bot def main(): bot = Bot() bot.run() if __name__ == "__main__": main()
ここまでファイルの記述ができたら、以下のコマンドを打ち込んでrun.pyファイルを実行します。
$ python run.py
ファイルを実行したら「SlackでBotに話しかけてみて!」とTerminal上で表示され、処理受付状態のままになると思います。
ここまででPython側の実装は完了です。
Slackの特定のチャンネルでBotをinviteします。
Botを招待したチャンネルで「@bot名」でメンションをつけて話しかけると、「HEY!!!」とデフォルト返信設定をした文章でメンションをつけて返答をしてくれます!
まとめ
これで、超簡単に最低限の返答Botを実装することができました。ここからこのSlackBotを拡張していき、連絡の自動化など機能を強めていきます!
ちなみに、今回の実装はこちらのGithubのREADMEを参考にしています。
Pythonの書き方が分からないという方はこちら、安いし分かりやすいのでオススメです。
いちばんやさしいPythonの教本 人気講師が教える基礎からサーバサイド開発まで 「いちばんやさしい教本」シリーズ
鈴木たかのり (著), 杉谷弥月 (著), 株式会社ビープラウド (著) インプレス (2017/8/10) |
Pythonでのプログラミング学習中の方向けに、Noteでより詳細なプログラミングチュートリアルを配信しているので、そちらもチェックしてみてください( ・v・)/
↓UdemyでPythonの基礎が丁寧に解説されている講座があるので、基本的な文法はこちらで学んだ方がいいです。
では!