概要
以前、TwitterAPIをPythonで操作する記事を投稿しましたが、今回はそのSlack Incoming Webhook版となります。
今やIT業界以外でもSlackを利用している会社は多くなってきているので、Slack APIを使いこなせるようになりたいなーと思ったので今回触ってみました。
個人的にはTwitterAPIよりとても簡単でした。
手順
環境
今回は以下の環境で実装をします。
- Python 3.6.1
- requests==2.18.4
前提
以下の準備が出来ていること
-
Slack関連
- Workspace
- Chanel
-
Python関連
- requestsのインストール
Incoming Webhookの登録
まずは、SlackにIncoming Webhookを作成する必要があります。
この設定をすることで外部からSlackへのメッセージ通知が可能になります。
まずはコチラにアクセスします。
そして、通知をしたいチャンネルを選択しAdd Incoming Webhook integrationボタンをクリックします。
※複数のワークスペースに参加している場合、他のワークスペースを選ばないように気をつけてください。
そうすると、ページ中央下部にWebhook URLが表示されるのでコピーしましょう。
スクリプトの実装
以下のスクリプトを用意してください。
import requests, json
WEB_HOOK_URL = "{Webhook URL}"
requests.post(WEB_HOOK_URL, data = json.dumps({
'text': u'Notifycation From Python.', #通知内容
'username': u'Bakira-Tech-Python-Bot', #ユーザー名
'icon_emoji': u':smile_cat:', #アイコン
'link_names': 1, #名前をリンク化
}))
実行
そい!!
python slack.py
おぉ、簡単!!
カスタマイズ
Incoming Webhooknoの編集画面でデフォルトの表示名やアイコン画像を指定すること出来ます。
ここで設定しておけば都度指定する必要が無くなるので便利です♪
import requests, json
WEB_HOOK_URL = "{Webhook URL}"
requests.post(WEB_HOOK_URL, data = json.dumps({
'text': u'Notifycation From Python.', #通知内容
'link_names': 1, #名前をリンク化
}))
素晴らしい!
あとがき
何やら、Slackで外部からメッセージを送る方法には
の2つの方法があるらしいですね。(なんか他にもありそうですが)
今回は後者を紹介しましたが、前者についても時間があるときに調べてみようと思います。
参考にさせて頂いた記事
非常に助かりました!!!