【Rails】Slack에게 통지하는 방법
소개
이번에는 Slack Webhook을 사용하여 Rails 앱에서 Slack에 알립니다.
슬랙에게 알리는 방법
필요한 젬
Gemfile
에 다음 두 가지를 추가합시다.
Gemfilegem '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
라는 파일을 만듭니다.
이제 환경 변수를 설정합니다.
.envSLACK_WEBHOOK_URL=https://hooks.slack.com~~~~~ #取得したWebHooksURL
SLACK_CHANNEL=general #指定したチャンネル名
그런 다음 .env
를 git 관리되지 않습니다.
루트 디렉토리의 .gitignore
에 이하를 추기.
.gitignore/.env
만약 루트 디렉토리에 .gitignore
가 만들어지지 않았다면 만드십시오!
(PC에 따라서는 rails new
했을 때 자동으로 생성되지 않는 경우가 있습니다.)
이것을 기술하지 않으면 GitHub에 push했을 때 .env
가 공개되어 버립니다! !
부르자.
통지하고 싶은 장소에서 다음과 같이 기술하면 OK
○○_controllernotifier = Slack::Notifier.new(
ENV['SLACK_WEBHOOK_URL'],
channel: "##{ENV['SLACK_CHANNEL']}",
username: '通知です'
)
notifier.ping '通知テキスト'
이제 알림을 받았습니다!
끝에
수고하셨습니다.
예외나 통보 기능을 실장했을 때에도 설정할 수 있을 것 같네요.
Reference
이 문제에 관하여(【Rails】Slack에게 통지하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/o-yuta/items/19140ece6ad399350a36
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'slack-notifier'
gem 'dotenv-rails'
bundle install
SLACK_WEBHOOK_URL=https://hooks.slack.com~~~~~ #取得したWebHooksURL
SLACK_CHANNEL=general #指定したチャンネル名
/.env
notifier = Slack::Notifier.new(
ENV['SLACK_WEBHOOK_URL'],
channel: "##{ENV['SLACK_CHANNEL']}",
username: '通知です'
)
notifier.ping '通知テキスト'
수고하셨습니다.
예외나 통보 기능을 실장했을 때에도 설정할 수 있을 것 같네요.
Reference
이 문제에 관하여(【Rails】Slack에게 통지하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/o-yuta/items/19140ece6ad399350a36텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)