Cross Road

Unity、VR、MR、ARを中心とした技術ブログ

PubNubとUnityで、仮想通貨取引所BitFlyer APIからTickerを取得しました

Meta2で作ったAR Webブラウザ

少し前になりますが、先月のMeta2体験会に備えて仮想通貨周りを調べたことがありました。


(ここでは仮想通貨の取引所のHPを空間に浮かべるブラウザアプリをデモしました)

調べている中で、bitFlyerがPubNub経由で情報を公開していることがわかりました。

また、PubNubはUnityでも使えることがわかったので、今回はbitFlyerのPubNub経由の情報をUnity表示する方法を整理しました。

目次

0. 仮想通貨のAPI概要

1. PubNubとは?

2. Unityで使うための準備

3. bitFlyerのTickerをUnityで表示する

4. 終わりに

0. 仮想通貨のAPI概要

仮想通貨といえば、日本でも複数の取引所があり、その多くはAPIを提供しています。

API 【bitFlyer】

取引所APIドキュメント | Coincheck(コインチェック)

APIドキュメント | フィスコ仮想通貨取引所

ZaifAPI ドキュメント — Zaif api document v1.1.1 ドキュメント

APIを使うと、現在の板情報、約定情報、Tickerなどが取得できます。

プライベートキーを取得すると、注文や入出金なども可能になります。


今回はPubNubを介して仮想通貨の情報を公開している、BitFlyerのAPIを使わせていただきました。

なお、この記事では、仮想通貨に関する個別用語の解説は省略させていただきます。

1. PubNubとは?

PubNub社のHPによると、強固な通信セキュリティが保証されたrealtime infrastructure-as-a-serviceです。

www.pubnub.com

Intelの紹介ページによると、2000社以上のパートナー企業を持ち、2億台以上のデバイスで使われているようです。

solutionsdirectory.intel.com


ざっくりいうと、PubNubというサービスを介することで、言語や開発環境が変わっても、2つ以上のデバイスの通信が簡単に実現できるという仕組みです。

HPを見ると、70以上のSDKに対応しているとあります。そのため、例えばPythonで書いたアプリケーションとC#で書いたアプリケーション間の通信も、PubNubを利用することで簡単に実現できます。

このようなイメージです。
PubNubの構成イメージ

双方のアプリケーションは、PubNubより発行されたPublishキー(情報を発信する)とSubscribeキー(情報を取得する)を使います。


今回は、bitFlyerが一部の情報をPubNubを介して発信しています。そのため、bitFlyerが公開しているSubscribe Keyを使うことで、情報を取得できます。

2. Unityで使うための準備

動作確認は以下の環境で行いました。

・Mac OSX 10.12.6
・Unity2017.2.0f3
・PubNub Unity SDK 3.7.10

以下のGitHubのHPから、Unityのサンプルプロジェクトをダウンロードします。

github.com

3. bitflyerのTickerをUnityで表示する

Unity2017でプロジェクトを開き、ExampleSceneを開きます。

PubnubExample.csを開いて、68行目に、bitFlyerのSubscribeKeyを入力します。
(これで、Unity Editor起動毎にキー入力する手間が省けます)

//L.68  2018/3/10時点
string subscribeKey = "sub-c-52a9ab50-291b-11e5-baaa-0619f8945a4f";

シーンを実行します。

PubNub Unity SDKのサンプルシーン実行時の画面

Action → Subscribeと押していきます。

PubNub Unity SDKのサンプルシーン実行時のSubscribe設定

Channelに、取得したい情報を入れます。

PubNub Unity SDKのサンプルシーン実行時の情報入力画面

bitFLyerの場合、2018/3/10時点では「板情報」、「板情報の差分」、「Ticker」、「約定」の情報を取得できます。

例えば、Tickerの場合、下記のようなChannel名を入れることができます。

BTC/JPY 板(現物): lightning_ticker_BTC_JPY
BTC/JPY FX 板: lightning_ticker_FX_BTC_JPY
ETH/BTC 板: lightning_ticker_ETH_BTC
Lightning Futures: lightning_board_snapshot_BTCJPY

ビットコインと日本円の板情報を取得したいときは、「lightning_ticker_BTC_JPY」をChannelに入力します。

Subscribeボタンを押すと、このようにリアルタイムに情報を取得できます。今回はTickerを使いました。


4. 終わりに

この後、取得したTicker情報をUnityでグラフにしたりと、もう少し試していたので、機会あれば書きたいと思います。