読者です 読者をやめる 読者になる 読者になる

RubyでHipChatにメッセージ通知

今日は自分の携わっているeXcaleが出展しているDevelopers Summitに来ています。
※ちなみにeXcaleはサインアップキャンペーン中で今なら新規登録でクーポンもらえます

隣のブースがAttrasianだったので、久々のブログのネタとしてHipChatにRubyから通知してみます。
HipChat万歳!

HipChatは今どきのWeb APIが公開されていますが、今回はそのラッパーライブラリを利用します。
今回利用するRuby用のライブラリ以外にも各言語向けにいろいろと存在しているのでこちらのページなんかを参考にするといいと思います。

とりあえずhipchatというgemをインストールします。

gem install hipchat

続いてAPIでメッセージ送信などをするにあたって必要となるトークンを作成します。このトークンはGroup adminのユーザじゃないと作れません。
ヘッダのGroup admin → APIと進みます。Create new tokenでTypeを選んでCreateします。
Typeは今回はAdminにしてますがNotificationでもいいかも。Labelは何も入力しなくてもOK。

f:id:Keisuke69:20140213114417p:plain

ここで取得したTokenを使って早速コードを書きます。

require 'hipchat'

token = "xxxxxxxxxxxxxxxxxxxxxx"
client = HipChat::Client.new(token)
client['test'].send("ruby",  "@all test message from ruby", :message_format => 'text', :color => 'purple', :notify => 1)

たったこれだけです。
引数は左から、送信者名、メッセージ本文、オプション…です。
tokenは先ほど作成したtokenの値に置き換えてください。

メッセージを送りたいルームを指定してsendメソッドを実行します。今回はテスト用にtestというルームを用意しました。
:message_formatをtextに指定すると@hogehogeというメンションが使えます。デフォルトはhtmlなので本文に@allとか指定してもメンションとしては認識されないみたいです。
colorはHipChatのクライアントでメッセージが表示されるときの背景色を指定できます。指定できるのはred、yellow、green、purple、randomでデフォルトはyellowです。
notifyを1に指定しておくとメッセージ通知が行えます。デフォルトはオフです。

早速実行してみます。

ruby send_message.rb

確認します。

f:id:Keisuke69:20140213114536p:plain

送ったメッセージがちゃんと表示されてますね。