Webhookを使いSlackに通知を送る

はじめに

Slackをよく使うようになりましたがSlackにはチャットとしてのみだけでなく、便利な機能がたくさんある事を知りました。これから少しずつ使いこなしていこうという事で、一先ずタイトルのような事をやってみようと思います。

以前この記事でWebhookを使っていますが、Webhookとは非公開ドメインを一意のAPIトークンを発行する事でパブリックドメインの様に扱えるようにするものです。今回はSlack内でAPIトークン(URL)を発行し、それに対してcurlコマンドを叩く事で通知を送ります。

インストール

SlackのAppsをクリックします。「Incomming Webhook」を追加します。

Slackに追加します。

URLが払い出されます。外部に漏れないようにご注意下さい。

POSTリクエスト送信

$ curl -X POST --data-urlencode "payload={\"text\": \"TEST\" }" 【Webhook URL】

これでSlackに通知が届くはずです。あとは蛇足ですが自作の掲示板サイトがあるのですが書込みがあった際に通知が届くスクリプトを作成しました。

$ tree --charset=C
.
|-- now.txt
|-- old.txt
`-- postLogcheck.sh
$ cat postLogcheck.sh 
#!/bin/bash
NOWFILE="【now.txtのパス】"
OLDFILE="【old.txtのパス】"
HOOKURL="【Webhook URL】"

cat /var/log/httpd/access_log | grep 302 | tail -n1 > $NOWFILE
if diff -q $OLDFILE $NOWFILE >/dev/null ; then
	echo "SAME"
else
	curl -X POST -H 'Content-type: applcation/json' --data "{\
		\"attachments\": [{ \
			\"title\": \"Keijiban Bot\", \
			\"text\": \"更新されました\" \
		}] \
	}" ${HOOKURL};
	cp $NOWFILE $OLDFILE
fi

これをcronで毎分実行するだけです。以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA