heroku + node.jsでSkype bot作った

WithOne Advent Calendar 2017 の 1日目です
私の所属しているグループの本社組は
水曜日にお昼ご飯をみんなで食べに行っています。(通称ランチミーティング)

毎回たくさんの人が参加するのでグループ分けをしているのですが

  • お昼までに各々エクセルに出欠を書く
  • 心優しい誰かが班分けサービスに名前を入力する
  • それをSkypeで発表

というフローがめんどくさいなあと思ったのでSkype bot作ってみました。

Skype Web SDK API reference

最近はSlack botが流行っていますが弊社のグループはSkype派です。
実装するにあたってここの記事を参考にさせていただきました。

Microsoft Bot FrameworkとHerokuとNode.jsを使ってSkype用Botを作る。 - Qiita

とりあえず作ってみた

この中で出てくる
botbuilderというのがMS製のbot作成フレームワーク
restifyというのがREST Web APIを作成するのに便利なフレームワーク
です。

記事を参考にしつつ、とりあえずbotを用意してみたらbotをグループに追加できず詰まる。。

なんとなく動いた・・・で終わらないためのMicrosoft Bot Framework ~ BotからSkypeグループにプロアクティブメッセージを送る ~ - Qiita

グループに参加させるためにはこの記事にあるようにグループに追加するための設定が必要でした。
これは見落としがちな気がするので注意です。

出欠席のデータの保存は、
DBを準備するほどではないなと思ったので、ファイルにガリガリユーザーを書き込むことにしました。
node.jsの「fs」と言うデフォルトの機能を利用するとファイルの操作も簡単にかけます。

出来上がったのがこのような感じ!
f:id:withoneAdventCalendar:20171201021941p:plain

Heroku簡単すぎてやばい

herokuは無料版だからだと思うのですがsshでサーバに入ると結構もっさりでした。
(レスポンスも遅め。。?)

Macのターミナルからだと恐ろしく簡単に導入できるので、
暇つぶしに何か作りたい方に本当にオススメです。
node.jsの環境の設定も、ボタン一つでWeb上からサクッとできます。

何も知らなくてできてしまうのは良いのか。という意見はあると思います。
業務ではもちろん正しい知識を身につけたほうが良いですが、
プライベートではサーバ構築などはかなり時間を取りますしハードルが高いので、
このようなサービスを使って簡単に作れるのは良いのではないかなと思いました。

コード公開しています

コードを公開しています。
フローが面倒云々と言いましたが正直このAdventCalendarのネタの為に作ったものなので
今日動かしてスクショを撮ることを目的としており、未完成です。
(グループを分割する時に4人以上、且ついい感じの人数でないと落ちます。)
完成させて実際に使えるよう頑張ります。。

あとリファクタリング・機能追加のプルリクどなたからでもお待ちしております。
github.com