mahoyaya’s diary

主に自分用メモです

誕生日からの経過日数を出力するSlack Botを作った

掲題の通りなのですが、誕生日からの経過日数を出力するSlack Botを作りました。

経緯

子供ができてからたまひよのアプリを使っていたのですが、使い勝手が悪いし、生後何日かを確認するくらいしか利用していなかったので、SlackのBotにすれば家族で共有できるし、そっちのがええやんということで作成しました。

作り方

こちらのサイト(BotkitでSlackのBotをサクッと作る方法)を参考にBotを設置しました。 Botはここから作成します。 応答を返すだけならば特に難しいことはありません。 お手本通りにやればできます。

準備

Slack公式のBotkitはNode.jsを利用するためNode.jsのインストールが必要です。インストールされていないのであれば、環境に合わせてインストールが必要ですが、Mac/Linuxで特に理由がなければnodebrewを利用するのが良いでしょう。こちらを参照してインストールします。Windowsの場合はnodistが利用できるようです。こちらが参考になります。

Node.jsのインストール・確認コマンド例(bash)

$ curl -L git.io/nodebrew | perl - setup
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ${HOME}/.bashrc
# .bash_profileが無い。もしくは.bash_profileに.bashrcを読む設定がない場合は読みこむようにします
$ cat << EOF >> ${HOME}/.bash_profile
> if [ -f ~/.bashrc ]; then
>   . ~/.bashrc
> fi
> EOF
$ ${SHELL} -l
$ nodebrew help
$ nodebrew ls-remote
$ nodebrew install-binary v5.6.0
$ nodebrew use v5.6.0
$ node -e "console.log('hello world');"

Botkitのインストール

Slack公式のBotフレームワークであるBotkitを任意のディレクトリにインストールします。gitが無い場合はnodeのパッケージマネージャーであるnpmからインストールできるみたいです。コマンドは載せておきますが、自分は使っていません。

gitの場合

$ git clone https://github.com/howdyai/botkit.git <folder-name>
$ cd <folder-name>
# 依存関係を解決させる
$ npm install

npmの場合

$ npm install --save botkit

Botの起動

ここまでできれば、もうデフォルトのBotが起動できます。起動後にBotに向けてhelloと送ると応答を返してくれるはずです。

#xxxはBotを作って手に入るAPIトークンを指定します。
$ token=xxx node bot.js

誕生日からの経過日数を出力させる

jsファイルはこちらに公開しています。 ただ使うだけであれば、bot.jsとcalcBirth.jsをBotkitのディレクトリ内に配置します。

起動中の場合はBotを再起動した状態でyourname(実際は指定したコマンド名)をSlackで入力すると次の様な情報が出力されます。

Tue Oct 20 2015 22:47:00 GMT+0900 (JST)
Sun Feb 14 2016 17:18:32 GMT+0900 (JST)
満年齢:0
前回の誕生日からの経過月と日数:3か月と25日
前回の誕生日からの経過日数:116日

需要は無いと思いますが、せっかく作ったので自分メモとして残しておきます。