20% ルールで Jenkins を弄っていた際に得られた知見を書きます。 Jenkins のことは書きません。
タイトルにもありますが、 Slack は slackbot という機能で簡単に bot を作ることが出来ます.
Integrations のページに行って slackbot を追加すると
以下の様な token が発行された curl のコマンドが表示されてこれを使うと簡単にメッセージを送信することが出来ます。
これを使うと簡単にチャンネルにメッセージを飛ばすことが出来るのですが、bot の名前やアイコンを変えられない問題があります。
かわいいアイコンやわかりやすいアイコンにしたいですよね。
Bots を使う
slackbot の代わりに Bots というのを使います。
こっちは bot の名前やアイコンなど様々な情報を変更することが出来ます。
こちらも slackbot と同様に token が発行されるのでソレを使って Slack の API を叩くことが出来ます。
任意のチャンネルにメッセージを飛ばすコマンドは以下の様な感じです。
curl -X POST https://slack.com/api/chat.postMessage \ -d "token=YOUR-API-TOKEN" \ -d "channel=#random" \ -d "text=テストメッセージ" \ -d "as_user=true" \ -d "link_names=1”
as_user=true
にすると token の持ち主の情報で発言が行われます.
lind_names=1
というのはメッセージに @username
が含まれている場合にそれをリンクにしてくれます.
という感じでこっちの bot を使えばアイコンなどを設定できるので bot が増えてもひと目で何を通知しているのかが分かりやすくなります。
また curl で叩けるので Jenkins などで シェルを実行
を使用すれば好きなタイミングで好きなメッセージを飛ばすジョブを作ることも出来ます。
ぜひぜひお試しください。