KibelaとSlackを連携させるBotを作った話
Slack→Kibela カスタム絵文字送信ボットの作成
今思えば Kibela の新機能|チームオリジナルのカスタム絵文字を追加できますという記事がすべての始まりだった。
カスタム絵文字が使えるということは当然、Slack と同じものを全部使いたい。でも 1 個 1 個登録していくわけにはいかない。ならば自動化だ、ということで Slack の絵文字を Kibela に移植する Bot を作ろうということになった。
Slack アプリと言えばBolt for JavaScriptかなということでまずはこれを導入。Kibela の方はGraphQLベースのAPIがあって、これで絵文字を登録できる。
というわけで最初にやるためのバルクインポートと、Slack で絵文字が追加されたときの Webhook で個別に同期する機能を作った。
ちなみに削除は今の API だと微妙にやりにくいので、ほったらかしになっている。
一応、その辺の対応をkibela/kibela-api-v1-document#48でお願いしているところ。
URL展開
そういえば Kibela 記事の URL って展開されなくて不便だな、と思っていたのでせっかくだから Kibela-Slack 連携の第 2 の機能ということで上で作ったボットに機能を追加した。これも Bolt と Kibela GraphQL で楽々実装できた。
この時点ではこんな感じ。
サマリーがやたら長くなるとか、そこ読んでも分からん、とかいう話が色々あったものの、何もないよりは良いと評判だった。
謎機能の実装
さて、右になんか画像付けるかと思って付けたものの Kibela のアイコンそのままなのはなんか面白くない。けど特に思い浮かばないし、ほったらかしにしていた。
それとは別に絵文字自体を作る方法関係で日本語の分かち書きあたりを調べてみた。「そういえばワードクラウドって流行りだったな」ということでふーんと見ていたところ…
「Kibelaの記事でワードクラウド作ればいいじゃん!」 という発想にたどり着いた。
例の記事のマークダウンをコピーしてくるとこんな感じ。
なんとなく雰囲気が分かって良い感じ(「ぼかし」はどこへ行ってしまったのだろう…)。
そして要約文のリストラへ
いっそ「先頭から切り出した」だけの文章を無くしちゃって、その分画像を大きくしてしまえ、というのがこれ。
開発
GitHub の kounoike/slack-to-kibela-emoji-syncer にありますのでご参考までに。見れば分かりますが master 直 push、中身も適当なので動かなくても怒らないでくださいね…。
Discussion
ちなみに、この後「やっぱワードクラウド生成重い・・・」ってなって頭抱えています