はじめてのPythonでSlackとつながってみる

  • 環境
    • OS : macOS Mojave バージョン10.14.1
    • Slack : Web版
    • ブラウザ : Chrome バージョン: 70.0.3538.102
    • curl : 7.54.0 (x86_64-apple-darwin18.0)
    • Python : 3.6.5

ponsuke-tarou.hatenablog.com

SlackAPIってなんだ?

api.slack.com

よくわからないでSlackのIncoming Webhooksを使ってみる

Webhockってなんなのさ!

qiita.com

SlackのIncoming Webhooksってなんなのさ!

get.slack.help

1. Webhockする用のAppを用意する

f:id:ponsuke_tarou:20181121234139p:plainf:id:ponsuke_tarou:20181121234258p:plainf:id:ponsuke_tarou:20181121234453p:plainf:id:ponsuke_tarou:20181121234745p:plain

f:id:ponsuke_tarou:20181121234657p:plain
[App Name]を入力 > [Department Slack Workspace]を選択 > [Create App]ボタンを押下
f:id:ponsuke_tarou:20181121235053p:plain
[Incoming Webhooks]を「ON」にする
f:id:ponsuke_tarou:20181121235446p:plain
同じページの下にある[Add New Webhoock To Workspace]を押下
f:id:ponsuke_tarou:20181127190644p:plainf:id:ponsuke_tarou:20181127190702p:plain

2. Incoming Webhooksを設定する

Incoming Webhooksを設定する

以下サイトの[Incoming Webhooksのエンドポイントを取得する]に従ってIncoming Webhooksを設定する
qiita.com
f:id:ponsuke_tarou:20181127203106p:plain

ちょっと使ってみる

Webhoock URLをゲットする

f:id:ponsuke_tarou:20181127215902p:plain

いろんなプロトコルでデータ転送してくれる curl コマンドを使う

Windowsではインストールが必要
qiita.com

Termialでcurlコマンドを使ってメッセージを送ってみる
# -X <method> : HTTP メソッドの指定
# --data-urlencode name=content : contentをURLエンコードする
curl -X POST --data-urlencode "payload={\"text\": \"初めてWebhoockでメッセージを送信します。\" }" [コピーしたWebhoock URL]

f:id:ponsuke_tarou:20181127222910p:plain
メッセージが届いた。

3. PythonでIncoming Webhooksを使ってSlackにメッセージを送ってみる

Pythonのインターネットにアクセスできる外部モジュール「Requests」をインストールする

ponsuke-tarou.hatenablog.com

Requestsを使ってPythonでメッセージを送ってみる

slack_webhook.pyというPythonのファイルを作って実行すると簡単にできた。

import json, requests

WEB_HOOK_URL = "https://hooks.slack.com/services/"
WEB_HOOK_URL += "WebhookURLの後半"
requests.post(WEB_HOOK_URL, data=json.dumps({
    'text': 'PythonでIncoming Webhooksを使ってSlackにメッセージを送ってみる.',
}))
# 作ったコードを実行する。
python3 slack_webhook.py

f:id:ponsuke_tarou:20190105145837p:plain
送られてきたメッセージ

もう少し使ってみる

slack_webhook.pyというPythonのファイルを作って実行するともう少し楽しいメッセージが送信できた。

はじめてのPythonでSlackとつながってみる

f:id:ponsuke_tarou:20190105171241p:plain
もう少し楽しいメッセージが送信できる。

参考にしたサイト

qiita.com
qiita.com


うまく行かなかったこと

リクエストにTokenがなくて not_authed が返却されました。

よくわからないでブラウザのURL欄に https://otsecbsol.slack.com/api/conversations.createと入力してみました・・・。

{"ok":false,"error":"not_authed"}


f:id:ponsuke_tarou:20181128002041j:plain