RubyでSlack通知をする
Slackは使っていますか?
僕は会社やプライベートはもっぱらSlackを使っています。
SlackにはAPIが備わっていて、APIを使えばSlack通知が簡単にできます。
今回はRubyでSlackに通知する方法を紹介します。
RubyでSlack通知をするには、以下の作業が必要です。
- webhook urlの発行
- webhook urlに対してpostする
1. webhook urlの発行
まずは、webhook urlを発行します。https://yourteam.slack.com/services/new/incoming-webhook
のページで発行できます。
Post先のチャンネルを選んで、Add Incoming Webhooks Integration
のボタンを押すと発行されます。
channelや通知するbotの名前を決めれるので、適当に決めます。
これでSlack側の準備は完了です。
2. webhook urlに対してpostする
webhook urlの発行ができたら、Slackに通知をしてみましょう。
今回、Slack通知にはslack-incoming-webhooksというgemを使います。
インストール
インストールは以下のコマンドでできます。
1 | gem install slack-incoming-webhooks |
Slackへ通知
使い方はシンプルです。
1 | require 'slack/incoming/webhooks' |
もし、通知先のチャンネルや通知するユーザーネームを変更したいときは指定できます。
1 | slack = Slack::Incoming::Webhooks.new "WEBHOOK_URL", channel: '#other-channel', username: 'monkey-bot' |
アクセサメソッドも用意されています。
1 | slack.channel = '#other-channel' |
Attachmentsを使う
さて、単純な通知ができたら次はもっとリッチなフォーマットで通知をしてみましょう。
それにはattachmentsを使います。
Example1
![slack-example](/images/slack-example.png =500x)
1 | attachments = [{ |
Example2
![slack-example2](/images/slack-example2.png =500x)
1 | attachments = [{ |
Example3
![slack-example3](/images/slack-example3.png =500x)
1 | attachments = [{ |
いかがでしたでしょうか。
今回紹介できなかったオプションもあるので、詳細はSlackのattachmentsのドキュメントを参考にしてください。
では、よいSlack Lifeを!