#author("2018-01-14T13:56:20+09:00","","")
#author("2018-01-30T22:36:38+09:00","","")
#navi(../)
* coincheckの板情報APIのサンプルコード(PHP) [#dce1d888]
&color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。};
----

PHPを使って&htmlinsert(coincheck.html);の[[板情報>https://coincheck.com/ja/documents/exchange/api#order-book]]APIの使用例を以下に記します。

#contents
----
以下のバナーは&htmlinsert(coincheck.html);へのリンクです。~
#htmlinsert(coincheck_wide.html)
#br
#htmlinsert(cc-top.html)


* 関連記事 [#sab66530]
-[[API動作環境構築>API/環境構築]]
-[[ティッカー(PHP)>API/coincheck/ティッカー(PHP)]]
-[[全取引履歴(PHP)>API/coincheck/全取引履歴(PHP)]]
-[[板情報(PHP)>API/coincheck/板情報(PHP)]]
-[[レート取得(PHP)>API/coincheck/レート取得(PHP)]]
-[[販売レート取得(PHP)>API/coincheck/販売レート取得(PHP)]]

-[[CoincheckのAPIキー生成手順>API/coincheck/APIキー生成手順]]

-[[アカウントの残高確認(PHP)>API/coincheck/残高確認(PHP)]]
-[[新規注文・現物売買(PHP)>API/coincheck/新規注文・現物売買(PHP)]]

-[[レバレッジアカウントの残高サンプル(PHP)>API/coincheck/レバレッジアカウントの残高取得]]
-[[レバレッジ取引注文サンプルコード(PHP)>API/coincheck/レバレッジ取引注文(PHP)]]
-[[レバレッジ取引のポジション一覧を取得する・positions(PHP)>API/coincheck/ポジション一覧(PHP)]]

-[[最近の取引履歴を取得する(PHP)>API/coincheck/最近の取引履歴の取得(PHP)]]



* ブラウザで板情報APIを呼び出してみる [#ab12b7f6]
public APIなので&htmlinsert(coincheck.html);に取引口座を開設していなくても使用することができます。

板情報のAPI仕様(Coincheck APIページから抜粋) ~
https://coincheck.com/ja/documents/exchange/api#order-book

 板情報
 板情報を取得できます。
 
 HTTP REQUEST
 GET /api/order_books
 
 RESPONSE ITEMS
 asks 売り注文の情報
 bids 買い注文の情報

板情報APIを試してみた結果、asks, bids の情報が400件(asks200件、bids200件)返却されました。~

* ブラウザで板情報を取得する [#hf5c60f3]
GETなのでブラウザで板情報を取得することができます。~
以下のようなURLになります。~
https://coincheck.com/api/order_books

* ブラウザで板情報APIにアクセスした結果 [#b033ca9d]
以下ブラウザから上記URLにアクセスしたときの出力です。

-Firefox ver56.0~
JSONが整形され表示されています。~
見やすいですね。~
(生データをクリックすると上記同様にJSON形式の返却された文字列が表示されます。)
#ref(01.png)

----
以下のバナーは&htmlinsert(coincheck.html);へのリンクです。~
#htmlinsert(coincheck_wide.html)
#br


* PHPで板情報APIを呼び出してみる(サンプルソース) [#e83e8b92]
PHPのサンプルソースは以下のようになります。
#ref(order_books.php.zip)
 <?php
 // API doc : https://coincheck.com/ja/documents/exchange/api#order-book
 // API url : https://coincheck.com/api/order_books
 
 // order book api url
 $coincheck_api_url  = "https://coincheck.com/api/order_books";
 
 // proxy settings
 $proxy      = "";
 $proxy_port = "";
 
 $curl = curl_init();
 if ($curl == FALSE) {
     fputs(STDERR, "[ERR] curl_init(): " . curl_error($curl) . PHP_EOL);
     die(1);
 }
 
 // curl set options
 curl_setopt($curl, CURLOPT_URL, $coincheck_api_url);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
 // set proxy server settings
 if (!empty($proxy) && !empty($proxy_port)) {
     curl_setopt($curl, CURLOPT_HTTPPROXYTUNNEL, 1);
     curl_setopt($curl, CURLOPT_PROXY, $proxy . ":" . $proxy_port);
     curl_setopt($curl, CURLOPT_PROXYPORT, $proxy_port);
 }
 
 // call order book api
 $response = curl_exec($curl);
 if ($response == FALSE) {
     fputs(STDERR, "[ERR] curl_exec(): " . curl_error($curl) . PHP_EOL);
     die(1);
 }
 curl_close($curl);
 
 // json decode
 $json_decode = json_decode($response, true);
 if ($json_decode == NULL) {
     fputs(STDERR, "[ERR] json_decode(): " . json_last_error_msg() . PHP_EOL);
     die(1);
 }
 
 // output json_decode
 //print_r($json_decode);
 
 // output order_book
 print("-------- asks --------\n");
 foreach ($json_decode['asks'] as $key => $value) {
     if ($key > 10) { break; }
     printf("%.1f : %.8f\n", $value[0], $value[1]);
 }
 print("-------- bids --------\n");
 foreach ($json_decode['bids'] as $key => $value) {
     if ($key > 10) { break; }
     printf("%.1f : %.8f\n", $value[0], $value[1]);
 }
 
 exit(0);


* 実行例 [#o4aba1fe]
上記のPHPサンプルソースを実行してみます。~
返却されたjsonをjson_decode()で連想配列に格納しています。~
上記でも記しましたが、asks200件、bids200件が返却されるので、foreachを使ってasks10件、bids10件を表示するようになっています。
 $ php order_books.php
 -------- asks --------
 818998.0 : 0.19999976
 818999.0 : 0.27154870
 819000.0 : 2.15247047
 819034.0 : 3.59900000
 819112.0 : 0.51058654
 819269.0 : 0.01000000
 819540.0 : 0.30000000
 819652.0 : 0.03910311
 819790.0 : 0.28500000
 820000.0 : 0.00510000
 820011.0 : 0.00500000
 -------- bids --------
 818822.0 : 0.01500000
 818818.0 : 0.08369992
 818813.0 : 0.00500000
 818705.0 : 0.01500000
 818655.0 : 0.05000000
 818647.0 : 0.00800000
 818642.0 : 0.02626427
 818614.0 : 0.00500000
 818600.0 : 0.10000000
 818550.0 : 0.60000000
 818455.0 : 0.30000000


BTCの板情報が返却されます。


以上、&htmlinsert(coincheck.html);のpublic APIである板情報APIのブラウザによるアクセスとPHPによる板情報呼び出しのサンプルコードの記事でした。


----
以下のバナーは&htmlinsert(coincheck.html);へのリンクです。~
#htmlinsert(coincheck_wide.html)
#br
#htmlinsert(cc-btm.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS