LoginSignup
98
84

More than 5 years have passed since last update.

slack-notifierでrailsからSlackへ簡単にメッセージを送る

Last updated at Posted at 2015-10-13

slack-ruby-gemというのもありこちらを紹介する記事は多いのですが、star数が多いこちらslack-notifierを使ってみた記事は少なかったので、まとめました。(どちらも単純にメッセージを送るだけだったら、機能的に差異は無さそう)

Slack側の事前準備(WebHookURLを取得する)

チャンネルのプルダウンから Add a service integration を選択します
Kobito.2D5JY4.png
Integrations の一覧から、 Incoming WebHooks を選択します(下の方にあります)
Kobito.y3glRH.png

プルダウンから通知したいチャンネルを選択して、 Add Incoming WebHooksをクリックします。
Kobito.CzWAzB.png
ここに表示されている Webhook URL をメモしておきます。(slackへの表示名や、アイコン画像もここで変更できます。)
Kobito.3x1qzx.png

railsアプリから、slackに通知を送る

Gemfileに slack-notifier を追加して bundle installします。

#Gemfile
gem 'slack-notifier'

あとはrailsの中で、以下の様なコードをかけば簡単にSlackに通知ができます。

notifier = Slack::Notifier.new('https://hooks.slack.com/services/hogehogefugafuga') #事前準備で取得したWebhook URL
notifier.ping('Hello')

通知されるとこんな感じ!
Kobito.tBavgl.png

私は環境変数に書いて、参照するようにしたりしてます。
事前準備で取得したWebhook URLを各環境の設定に追記します。(以下はproduction.rbに環境変数を使って定義する例)

# production.rb
  config.slack_webhook_url = ENV['SLACK_WEBHOOK_URL']

notifier = Slack::Notifier.new(Rails.application.config.slack_webhook_url)
notifier.ping(message)

感想・所感

めっちゃ簡単にSlack連携できました。ただSlackへの通知はそこそこ時間がかかるので、当たり前といえば当たり前ですがカジュアルにコントローラとかから直接Slackにメッセージを送るのは注意が必要です。(sidekiqなど使って遅延実行した方が良いと思う)

98
84
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
98
84