ChatWorkのAPIを叩けるGemをつくった
札幌でサッポロクラシックを飲みながら書いてる。ビうまいール
以前、こういうエントリを書いてからずいぶんが経過した。
APIキーをもらえたのは11月も終わりとかで、そこからだらだらコードを書いてやっとリリースしました。
使い方は簡単で
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をつくってみるといいのではないだろうかー。