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で株価の取得開始日を指定できなくなったのが辛かった。
実行
起動する前にslackのconfigurationでhubot用のトークンを発行して環境変数に設定しておく。
export HUBOT_SLACK_TOKEN=<hubot token>
bin/hubot --adapter slack
こんな感じの結果が返る
所感
ものすごく久しぶりにJavascriptを書いたけど、fetchとpromiseすごく便利だった。
一方で日付とか値の文字列とかの挙動は相変わらず扱いにくかった。
現状証券コード問い合わせる仕様になっているが、証券コードとか覚えてられないので会社の名前で問い合わせられるようにしたい。あと、急騰や急落を通知してくれる機能なんかを実装したい。