マーケティング専門ですが、Pythonの学習を進めている、TomoOneです。
さて、Pythonの基礎がだんだんわかってきて、実際に色んなものを自動化、システム化してやろうと思っています。
まずは、超初級で、Pythonのコード4行でslackへの通知を送るコードを書いてみます。
使うもの
- Python3
- slack(アカウント要登録)
- WebHook
- Pythonが動くサーバ
手順
Incoming WebhookでURLを作成
slackのIncoming Webhook のページにログインし、「チャンネルへの投稿」から投稿したいチャンネルを選択します。
(複数のアカウントを持っている場合は、アカウントを間違えないように!)
選択したら、「Incomming Webhook インテグレーションの追加」 をクリックします。
セットアップ画面に遷移し、 Webhook URL が発行されます。
発行されたURLを使って、Pythonのスクリプトを書く
Python3がインストールされているサーバに遷移し、pipとslackwebをインストール(まだの場合は)。
# pipがインストールされていない場合はインストール
$ sudo install pip
# slackwebがインストールされていない場合はインストール
$ sudo pip install slackweb
上記でインストールした slackweb に沿ってPyshonスクリプトを記載。
今回は、Microsoft AzureのVirtual Machineを使いそこにPythonやpipを入れました。ファイル名は、postToSlack.py としました。常時動かしておきたい場合は、外部のクラウドサーバやVPSなどを使ったほうがいいです。
試す分には、ローカル環境でも良いはず。
# config: UTF-8
# ライブラリのインポート
import slackweb
# 取得したURLをいれる
slack = slackweb.Slack(url="https://hooks.slack.com/xxxxxxxxxxxxxxxxxxxxxxxx")
slack.notify(text="投稿したい文字をいれる") # 例:Hey! from python to slack
Pythonスクリプトの実行
書き終わりましたら、実行してみます。
コマンドラインから、以下のコマンドを実行します。
python3 postToSlack.py
すると、実際にslackの指定したチャンネルに投稿がされています!
注意事項
1度ハマったのですが、日本語のテキストを出力させたい場合にPythonの実行がエラーになることがあります。
環境によっては、Python2系とPython3系が一緒に入っていることもあるため、その場合はpython3コマンドを使うこと、
また、python3の方に slackweb ライブラリをインストールするため、以下のコマンドでインストールすることが必要です。
pip3 install slackweb