42
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

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

概要

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

参考にさせて頂いた記事

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
42
Help us understand the problem. What are the problem?