Help us understand the problem. What is going on with this article?

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

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

参考にさせて頂いた記事

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

bakira
主にjavaを使ったサーバーサイドのWebシステムの開発をしています。 今はQiitaへの投稿はやめて個人技術ブログにせっせと日々投稿しています。 フロントサイドについても、ちょいちょいやっています。 今年はインフラ構築知識を伸ばすことが目標。 目指せフルスタックエンジニア!
https://bakira.tech/
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