[ChatOps] サーバサイドで起きた諸々の事象をSlackbotに通知してもらう
(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
を押下するだけで発行可能です。
※もし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\"}"
結果
出来ました。
自分はこれをサーバ側で何らかの例外が吐かれる時に叩かせて、チャット上に通知してもらっています。
記事のタイトルはサーバサイドで起きた諸々の事象を〜
としましたが、
getのAPIを叩くだけなのでどんなシーンでも利用できそうですね。
インタラクティブな作業(チャットからbotにデプロイを依頼するなど)はhubotが必要になりますが、
まずはお手軽なChatOpsの第一歩として、こちらもぜひ試してみてください。
Author And Source
この問題について([ChatOps] サーバサイドで起きた諸々の事象をSlackbotに通知してもらう), 我々は、より多くの情報をここで見つけました https://qiita.com/kidach1/items/7f1053acb9dffc5c684d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .