IT界隈じゃもはやSlackがデファクトスタンダードになりつつあるけど、 残念ながらうちの会社が使っているのはChatwork。
多機能なのは良いんだけどMarkdownには対応してないし、 APIはいつまで経ってもプレビュー版のままだし、 そのAPIもイマイチ機能が足りない感じ。
なんというか全体的にエンジニアフレンドリーじゃない感じがするんだけれど、 これって日本の企業では決済権を握ってるのが事務方が多いことに最適化した結果なんだろうなーなんて 競合Slackとの差異に思いを馳せたりする。
そんな愚痴はさておき、今回はGo言語の勉強がてら作ってみたchwkコマンドについての紹介。
導入
githubのリリースページからzipで環境にあったのをダウンロード。
Releases · blue1st/chwk · GitHub
解凍して~/bin
にでも収め、実行権限を付ける。
$ wget https://github.com/blue1st/chwk/releases/download/v_0.1.1/chwk_linux_x86_64.zip -O chwk.zip $ unzip chwk.zip $ mv chwk ~/bin/ $ chmod +x ~/bin/chwk
環境変数CHATWORK_TOKEN
にWebUIから発行したトークンをセットすれば準備完了。
$ export CHATWORK_TOKEN=xxxxxxxxxx
使い方
引数からメッセージを記述すると、デフォルトでは自身のマイチャットに投稿。
$ chwk MESSAGE
オプションとしてr
もしくはroom
として投稿するチャンネルのroom_id(URLの末尾のrid~
の数字部分)を与えると、
該当のチャンネルに投稿。
また、t
もしくはto
オプションで宛先を設定することができる。
$ chwk --room ROOM_ID --to ACCOUNT_ID MESSAGE
メッセージは標準入力からも取ることができる。
$ echo MESSAGE | chwk
単に投稿するだけの単純なコマンドではあるが、 ちょっとした思いつきをコマンドライン上からサクッとマイチャットにメモ書きしたり、 コマンドの実行結果をそのままチャットに流したり、 あるいは実行時間の長いバッチの処理完了を通知したりと、 何かと使い所はあるんじゃないかと思う。
ほんとはボットからチャット上にスクショ貼ったりしたかったんだけど、 APIにファイルアップロード機能は用意されてないし、 それじゃあとCasperJSで色々試してみたけどそれも厳しそう・・・
Go言語は型まわりでちょっと悩まされることもあるし、 エラーハンドリングはまだ慣れないけど、 それでもLLばっかり触ってた身には新鮮で面白いですな。
シングルバイナリだからこの手の思いつきツールもサクッと配布できるのが良い。
積極的に使う機会を作っていきたい所存。
- 作者: 松木雅幸,mattn,藤原俊一郎,中島大一,牧大輔,鈴木健太,稲葉貴洋
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/09
- メディア: 大型本
- この商品を含むブログ (2件) を見る