前提条件
・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を使用したりして
環境変数として設定するといいと思います。