はじめに
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
で毎分実行するだけです。以上です。