Python
TwitterAPI
Python3
Slack
Webhook

PythonでSlackのIncoming Webhookを試してみる

More than 1 year has passed since last update.


概要

以前、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

そうすると、ページ中央下部Webhook URLが表示されるのでコピーしましょう。

screencapture- 2018-01-15 22.03.16.png


スクリプトの実装

以下のスクリプトを用意してください。


slack.py

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, #名前をリンク化
}))



実行

そい!!


command

python slack.py


screencapture- 2018-01-15 22.08.06.png

おぉ、簡単!!


カスタマイズ

Incoming Webhooknoの編集画面デフォルトの表示名アイコン画像を指定すること出来ます。

ここで設定しておけば都度指定する必要が無くなるので便利です♪

screencapture- 2018-01-15 22.15.42.png


slack.py

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

素晴らしい!


あとがき

何やら、Slackで外部からメッセージを送る方法には

2つの方法があるらしいですね。(なんか他にもありそうですが)

今回は後者を紹介しましたが、前者についても時間があるときに調べてみようと思います。


参考にさせて頂いた記事

非常に助かりました!!!