【Rails】Slack에게 통지하는 방법

소개



이번에는 Slack Webhook을 사용하여 Rails 앱에서 Slack에 알립니다.

슬랙에게 알리는 방법



필요한 젬


Gemfile 에 다음 두 가지를 추가합시다.

Gemfile
gem 'slack-notifier'
gem 'dotenv-rails'

터미널
bundle install

slack-notifier 은 그 이름대로 Slack에 통지를 보낼 때 이용합니다.

dotenv-rails.env 에 정의한 환경 변수를 읽을 수 있는 gem입니다.
자주 사용하는 gem이므로 여기도 읽어 둡시다.
이번은 후술하는 Slack의 WebHooksURL과 channel을 환경 변수로 관리할 때에 이용합니다.

Slack WebHooksURL 얻기



① 이하의 URL에 액세스한다.
htps : // s ck. 코 m / 세 r ゔ ぃ 세 / w

② "Post to Channel"의 셀렉트 박스에서 통지하고 싶은 채널을 선택한다. (나는 general로 만들었다)
③「Add Incoming WebHooks integration」을 눌러 발행한다.
④ 이하의 이미지와 같이 URL이 표시되므로 복사해 둔다. 타인에게 보이지 않도록 주의하여 관리하십시오.


Rails로 설정



앱의 루트 디렉토리에 .env라는 파일을 만듭니다.
이제 환경 변수를 설정합니다.

.env
SLACK_WEBHOOK_URL=https://hooks.slack.com~~~~~ #取得したWebHooksURL
SLACK_CHANNEL=general #指定したチャンネル名

그런 다음 .env 를 git 관리되지 않습니다.
루트 디렉토리의 .gitignore 에 이하를 추기.

.gitignore
/.env

만약 루트 디렉토리에 .gitignore가 만들어지지 않았다면 만드십시오!
(PC에 따라서는 rails new 했을 때 자동으로 생성되지 않는 경우가 있습니다.)

이것을 기술하지 않으면 GitHub에 push했을 때 .env가 공개되어 버립니다! !

부르자.



통지하고 싶은 장소에서 다음과 같이 기술하면 OK

○○_controller
notifier = Slack::Notifier.new(
  ENV['SLACK_WEBHOOK_URL'],
  channel: "##{ENV['SLACK_CHANNEL']}",
  username: '通知です'
)
notifier.ping '通知テキスト'


이제 알림을 받았습니다!

끝에



수고하셨습니다.
예외나 통보 기능을 실장했을 때에도 설정할 수 있을 것 같네요.

좋은 웹페이지 즐겨찾기