Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

(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を利用するために

https://api.slack.com/#auth

より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の第一歩として、こちらもぜひ試してみてください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした