Python3からslackに投稿する方法

Python3からslackの任意のチャンネルに投稿する方法です。
簡単ですが覚え書きのためにまとめておきます。

手順

・slackのwebページからincoming WebhookのURLを発行する
・python3にslackwebをインストール
・適当なプログラムを作って投稿

incoming WebhookのURLを発行する

slackのincoming webhook 設定ページにアクセス

f:id:Tmegane:20181012111828p:plain

投稿したいチャンネル(#general とか)を選択したら
「着信Webフック インテグレーションの追加」をクリック

f:id:Tmegane:20181012111950p:plain

URLが発行されるので、これをコピーしておく

slack側の設定はこれだけ!かんたん!

Python3にslackwebをいれる

Python3にslackwebモジュールをインストールする。
他にもslackにpythonから投稿する方法は色々あるけど、モジュール化されててこれが一番楽(だと思う)

インストールはpipを使ってターミナルから

python3 -m pip install slackweb

pipが入ってない人は先にpipをいれておく

easy_install pip

Python3からslackに投稿

下準備はできたので、早速何か投稿してみる

import slackweb

comment="Hello SlackPi"

test=slackweb.Slack(url=" ココに発行されたincoming webhookのURL ")
test.notify(text=comment)  

slackweb.Slack
の中にさっき取得したURLを引数としていれる
あとはnotifyに投稿したい内容をいれるだけ。

作ったスクリプトを実行すると

f:id:Tmegane:20181012112833p:plain

こんな感じでincoming-webhookからのメッセージが届く

f:id:Tmegane:20181012113547p:plain

うーん、簡単だ・・・

おまけ

f:id:Tmegane:20181012113613p:plain

投稿したときに表示される名前とかアイコンも、incoming Webhook URLを設定したページから変更できます。

URLの取得だけで簡単に連携可能なので、色々と捗りそう。
長い計算プログラムが終わった時や、途中で止まった時にエラーメッセージをslackに投稿させるとか