良いあそなすちゃん

良い方のあそなすちゃんです!

ChatWorkのAPIを叩けるGemをつくった


札幌でサッポロクラシックを飲みながら書いてる。ビうまいール

以前、こういうエントリを書いてからずいぶんが経過した。

APIキーをもらえたのは11月も終わりとかで、そこからだらだらコードを書いてやっとリリースしました。

asonas/chatwork-ruby · GitHub

使い方は簡単で

require 'chatwork'

ChatWork.api_key = "XXX"
ChatWork::Message.create(room_id: 1234, body: "Hello, ChatWork!")

みたいな感じ。CIが終了した時のことしか考えてないのでとりあえずメッセージの投稿だけです。ほしいAPIのあればIssuesたてたりPRください。
APIキーは個人アカウントで発行されるようなので、CIのメッセージを送りたかったら、CI用のアカウントをつくってあげないと自分が発言している風に見えるので個別にAPIキーを用意する必要があると思う(めんどそう。。)

CI以外にもデプロイが終わったら通知してくれる方法も簡単にできて、config/deploy/*.rbに

require 'chatwork'

after "deploy", "deploy:notify"

namespace :deploy do 
  task :notify, roles: :web do
    user_name = `git config --global user.name`.gsub("\n", '')
    github_path = "https://github.com/asonas/asonas.jp/commit/#{current_revision}"
    body = "#{user_name} deployed a new version of asonas.jp #{github_path}"
    ChatWork.api_key = "XXX"
    ChatWork::Message.create(room_id: 1234, body: body)
  end
end

みたいな感じ(自分のサイトをcapistrano3対応してないことを思い出して憂鬱になった)

戯言

実装、実はWebPayのgemを読んで面白いなーと思ったから、ほとんどまねっこしてつくった。Faraday便利。

また、このAPIプログラマブルというか結構個人に紐づくような形になっている(上にも書いたけど。)

これどういうことかというと、自分で好きなUIが組めるチャンスなんじゃなかろうか。事実、メッセージの作成には、メッセージ記法というのがあって、リプライや引用ができたり、APIの方にもタスクの作成や部屋の作成が提供されている。最近ChatWorkヘビーユースしていないけど、ひと通りの事がAPIで提供されていると思うし、ChatWorkのUIが好きじゃない人はAPIを使った自分好みなChatWorkをつくってみるといいのではないだろうかー。