hubotで株価を取得するbotを作る

hubotを使ってSlackのbotを作ってみたので手順を簡単にメモっておく。
今回は簡単なサンプルとしてgoogle financeのAPIから株価を取得して、前日との差分を教えてくれるbotを作成した。

インストール

npmでyeoman、generator-hubotをインストール

npm install -g yo generator-hubot

ディレクトリを作って初期化する

mkdir mybot
cd mybot
yo hubot

色々質問されるので適当に入力しておく。adapterはslackを選択する。

コード

自動生成されたscriptというディレクトリにコードを書いていく。
デフォルトではcoffee scriptが置いてあるけど普通にJavascriptでも書ける。

google financeのAPIを叩くのにfetchを使用する。

npm install node-fetch --save

コードはこんな感じ。最新の株価と前日との差分を返す。
tsで株価の取得開始日を指定できなくなったのが辛かった。

gist.github.com

実行

起動する前にslackのconfigurationでhubot用のトークンを発行して環境変数に設定しておく。

bin/hubot --adapter slack

こんな感じの結果が返る
f:id:ymtttk:20170916173429p:plain:w300

所感

ものすごく久しぶりにJavascriptを書いたけど、fetchとpromiseすごく便利だった。
一方で日付とか値の文字列とかの挙動は相変わらず扱いにくかった。

現状証券コード問い合わせる仕様になっているが、証券コードとか覚えてられないので会社の名前で問い合わせられるようにしたい。あと、急騰や急落を通知してくれる機能なんかを実装したい。