LoginSignup
14
14

More than 5 years have passed since last update.

[ChatOps] サーバサイドで起きた諸々の事象をSlackbotに通知してもらう

Last updated at Posted at 2014-08-05

(2014/09/09追記)

こちらも併せてご覧下さい。

コード1行でBotがSlackへ通知してくれるGemを公開しました - Qiita
http://qiita.com/kidachi_/items/debfd0474d0888e5b1f1

概要

Qiita::Teamでも連携対応されたSlack
http://blog.qiita.com/post/88252533014/qiita-team-slack

最近はHipChatとの比較で、デザインが良い/後発だけに出来ることが多い等、
話題に上がることも多いですね。

基本的なAPIは用意されているので、タイトル程度の内容ならhubotを使わずとも実現可能です。

APIトークンの生成

まずは準備として、各種APIを利用するために

よりAPIトークンの発行を行います。

Slack内にサインインし、かつ何らかのteamに属していれば、以下のようにCreate tokenを押下するだけで発行可能です。

Slack_API___Slack.png

※もしteamに属していない場合は
Please log into your team and then reload this page to view your tokens.
といったメッセージが表示されています。
まずはteamを作成(もしくはどこかのteamに招待を依頼)し参加しましょう。

APIの選定

上記Authenticationの項目の下に様々なAPIが載っています。

今回は、シンプルに指定のchannelにメッセージを投げてくれる
chat.postMessage
https://api.slack.com/methods/chat.postMessage
を使います。

インターフェースを見ると、以下を構築してgetで叩くだけで良さそうです。

https://slack.com/api/chat.postMessage?channel=<channel_name>&text=<text>&token=<your_token>&username=<bot_name>

実際に利用する

今回はRubyで書いてみます。

require 'addressable/uri'
require 'net/http'

endpoint = 'https://slack.com/api/chat.postMessage'
token='hogehoge'
channel='#slack_bot_test'
text='hello,slackbot!'
username='slackbot'

uri = Addressable::URI.parse(endpoint)
query = {token: token, channel: channel, text: text, username: username}
uri.query_values ||= {}
uri.query_values = uri.query_values.merge(query)

Net::HTTP.get(URI.parse(uri))
=> "{\"ok\":true,\"channel\":\"C02EZTYKS\",\"ts\":\"1407134492.000010\"}"

結果

Slack_と_1__rails_c__ruby_.png

出来ました。

自分はこれをサーバ側で何らかの例外が吐かれる時に叩かせて、チャット上に通知してもらっています。

記事のタイトルはサーバサイドで起きた諸々の事象を〜としましたが、
getのAPIを叩くだけなのでどんなシーンでも利用できそうですね。

インタラクティブな作業(チャットからbotにデプロイを依頼するなど)はhubotが必要になりますが、
まずはお手軽なChatOpsの第一歩として、こちらもぜひ試してみてください。

14
14
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
14
14