2
1

More than 3 years have passed since last update.

Rails Slackへメッセージを送信

Last updated at Posted at 2021-03-01

前提条件

・ruby 2.6.6
・Rails 6.0.3.2
・macOS Catalina バージョン10.15.7

概要

 webアプリ内で特定のアクションが起きた時にSlackへ通知する機能を実装したいと思い
実装の備忘録としてここに記す。
 思ったよりかなり簡単だったので、ぜひご自身のwebアプリに活用していただけると幸いです。

gem 'slack-notifier'の導入

 slackへ通知を送るにはgemを導入する必要があります。

Gemfile
gem 'slack-notifier'
ターミナル
bundle

これでgemの導入が完了します。

Slack側準備

 まずチャンネルのWebhook URLを取得するために、下記のURLにアクセスします。 

 https://slack.com/services/new/incoming-webhook

 ここでRailsからの通知を受け取るチャンネルを設定します。既存のチャンネル、もしくは新規にチャンネルを作ってもどちらでも可能です。
 チャンネルを入力後、Incoming Webhook インテグレーションの追加をクリック。
その後に表示される、Webhook URLを取得します。

Slackに通知を飛ばす

 飛ばしたいアクションの中に

notifier = Slack::Notifier.new(
  'WEBHOOK_URL', 
  channel: '通知を送りたいチャンネル名',
  username: 'notifier',
)
notifier.ping 'ユーザーが投稿を作成しました!'

と書き込みます。
最後に先ほど取得したWebhook URLを'WEBHOOK_URL'に入力します。
これで実装が完了となります。実際にアクションを起こし確認してみてください。
また、そのままWEBHOOK_URLを書き込むより、gemのdotenv-railsを使用したりして
環境変数として設定するといいと思います。

参考文献

・RailsプロジェクトでSlack通知を実装する
https://tech.mof-mof.co.jp/blog/rails-slack-notifier/

2
1
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
2
1