概要
以前、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ボタン__をクリックします。
※複数のワークスペースに参加している場合、他のワークスペースを選ばないように気をつけてください。
![screencapture- 2018-01-15 22.03.53.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F113654%2F17ec4521-d0ae-89d0-faba-294048089b06.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=566646c424da06396f9dcc012eb6a79c)
そうすると、__ページ中央下部__に__Webhook URL__が表示されるので__コピー__しましょう。
![screencapture- 2018-01-15 22.03.16.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F113654%2F5cb63270-2607-def3-af5b-9841ac9c660f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=856f90506a3735438ef2818da8b2a816)
スクリプトの実装
__以下のスクリプト__を用意してください。
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
![screencapture- 2018-01-15 22.08.06.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F113654%2Fa2c06ed4-4c98-f49b-7df0-2bd496367aff.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=60dd57e3cbf541fa6c50e3ad5bad69c7)
おぉ、簡単!!
カスタマイズ
Incoming Webhooknoの__編集画面__で__デフォルトの表示名__や__アイコン画像__を指定すること出来ます。
ここで設定しておけば__都度指定する必要が無くなる__ので便利です♪
![screencapture- 2018-01-15 22.15.42.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F113654%2F402b1c9b-a5b5-6dba-6804-12b4bf11c5f6.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=a3f92430c02ac0ea771f61a981c1fb02)
import requests, json
WEB_HOOK_URL = "{Webhook URL}"
requests.post(WEB_HOOK_URL, data = json.dumps({
'text': u'Notifycation From Python.', #通知内容
'link_names': 1, #名前をリンク化
}))
![screencapture- 2018-01-15 22.17.02.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F113654%2F2f425692-6f62-fe72-241d-5d58082797a5.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=49473765979961f34a9cbaa058a68b22)
素晴らしい!
あとがき
何やら、Slackで外部からメッセージを送る方法には
の__2つの方法__があるらしいですね。(なんか他にもありそうですが)
今回は__後者__を紹介しましたが、__前者__についても時間があるときに調べてみようと思います。
参考にさせて頂いた記事
非常に助かりました!!!