LoginSignup
60
43

More than 5 years have passed since last update.

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

Last updated at Posted at 2018-01-15

概要

以前、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つの方法があるらしいですね。(なんか他にもありそうですが)
今回は後者を紹介しましたが、前者についても時間があるときに調べてみようと思います。

参考にさせて頂いた記事

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

60
43
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
60
43