Excelで簡単APIアクセス

API化があちこちで進められているけど、APIなんて難しいし関係ないと思っている人、まだまだいますよね。
でもね。もう、そういう次元じゃないんですよね。REST(ful) APIが登場してこっち、利用環境も含めて格段に進化しているんです。プログラマだけじゃない。普通の人でも簡単に扱える時代なんですよ。

ってことで、Microsoft ExcelとbitFlyer Lightning APIをサンプルに、すげーを体験してみようと思います。

やりたいこと
・仮想通貨取引所(bitFlyerのFX)で現在の板情報をExcelにぶち込む

必要なもの
・Microsoft Excel 2016 (or 2013 + Power Query)

手順
Excelを開いて、「データ」→「Webから」を選択して、URL欄にAPIドキュメントから読み解いたURLを入力します。今回の場合は、bitFlyerのBTC/JPY FXの板情報を取得するので、 https://api.bitflyer.jp/v1/board?product_code=FX_BTC_JPY です。

クエリ エディタが出てくるので、適当に編集して閉じればOK。以上!

っとさすがに不親切ですので、もう少し。「mid_price」項目はそのまま値が入っていますが、「bids」「asks」はListってなってます。これは選択すると下側にリストの中身がプレビューされますね。でも、各行は「Record」ってなっててぐぬぬって感じです。こいつらを実際使えるように展開していきます。

「bids」を展開していくクエリを作成します。「bids」の「List」部分を右クリックして「新しいクエリとして追加」します。

「Record」の中には「price」と「size」が入っているのがわかります。これを「リストツールの変換」→「テーブルへの変換」を押してテーブル化します。

すると、列名の横に「展開」っぽいボタンが出てくるので、ポチっとします。

おおー。それっぽいですね。あとは閉じて読み込めばオッケーです。「asks」のほうも同じようやればオッケー。

あとはお好きなように加工しちゃってください。ちなみに、「データ」→「すべて更新」ってやれば最新データを取得しなおしてくれます。簡単でしたね!

参考 bitFlyer Lightning APIドキュメント
https://lightning.bitflyer.jp/docs?lang=ja
https://lightning.bitflyer.jp/docs?lang=ja#板情報
https://lightning.bitflyer.jp/docs/playground

補足。今回のやり方だと、別々のクエリになるので厳密に3つのデータが同期とれている訳じゃないと思います。同期とるには1つのクエリからうまく加工すればいいんだと思ういますが、Excel詳しくないのでわかる人いたら教えていただきたいです。