MENU

Rails Slack通知 webhook

仕組み

webhookとは?

qiita.com

この記事を参考にすると、外部のサービスを、指定のエンドポイント(url)を叩くと利用できると言う事らしい(さらっと読んでるので、違うかも)

通常外部のサービスをAPI利用する場合、tokenやkeyを取得してできるけど、 urlだけでできみたい(やってみてそう思いました)

手順

1.slackのwebhookurlを習得 2.railsにgemを追加 3.実装

slackのwebhookurlを習得

このurlから作成できる

slack.com

urlを作成する時に、どの部屋に通知するか?も設定するので、 実行時に部屋を指定する必要はない

railsにgemを追加

github.com

これを追加

実装

これだけでできてしまう。

slack = Slack::Incoming::Webhooks.new "WEBHOOK_URL"
slack.post "Hello World"

railsに実装するとき500エラーなどでslack通知をしたいと思うので, 調査しやすくするために、リクエストurlや、basktraceなども出力しておくと 良さげです。

    slack = Slack::Incoming::Webhooks.new "webhook_url"
    message = <<~TEXT
      ```
      【~~時に予期せぬエラーが発生しました。】
      error_url: #{request.url}
      referer: #{request.referer}
      error_class: #{error.class}
      error_message: #{error.message}
      backtrace: #{error.backtrace[0..5].join('\n')}
      ```
    TEXT

    slack.post message

参考記事

webhookurlを習得

qiita.com