#author("2017-11-04T02:13:15+09:00","","")
#author("2017-11-04T17:48:24+09:00","","")
#navi(../)
* coincheckの全取引履歴APIのサンプルコード(PHP) [#g91422c9]
&color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。};
----

PHPを使って&htmlinsert(coincheck.html);の[[全取引履歴>https://coincheck.com/ja/documents/exchange/api#public-trades]]の使用例を以下に記します。

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

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

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

全取引履歴のAPI仕様(Coincheck APIページから抜粋) ~
https://coincheck.com/ja/documents/exchange/api#public-trades

 全取引履歴
 最新の取引履歴を取得できます。
 
 HTTP REQUEST
 GET /api/trades
 
 PARAMETERS
 offset 指定された数だけスキップ

全取引履歴APIをいろいろ試してみた結果、100件の情報をもっているようです。~
パラメータのoffsetのスキップ数ですが、0〜99まで指定できました。~
99を指定すると、1件のみ取得。offsetを指定しない、または0を指定すると最新から50件取得できました。~
したがって、offsetを指定すると最新から指定した数値分、取引をスキップし残りの取引を表示しているようです。~
ただし、残りの取引情報が50件以上の場合は50件まで取得できました。


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

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

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

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

* PHPで全取引履歴APIを呼び出してみる(サンプルソース) [#e83e8b92]
PHPのサンプルソースは以下のようになります。
#ref(trades.php.zip)
 <?php
 // API doc : https://coincheck.com/ja/documents/exchange/api#public-trades
 // API url : https://coincheck.com/api/trades
 
 $coincheck_url  = "https://coincheck.com";
 $trades_api = "/api/trades";
 $url = $coincheck_url . $trades_api;
 
 // arguments -> http query
 $options = getopt("o:");
 if (!check_arguments($options)) {
     usage();
     die(1);
 }
 
 $http_query = array();
 foreach ($options as $key => $value) {
     if     ($key == "o") { $http_query["offset"] = $value; }
 }
 
 if (count($http_query) > 0) {
     $url = $url . "?" . http_build_query($http_query);
 }
 
 // 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, $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 trades 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);
 
 exit(0);
 
 //----------------------------------------------------------
 // functions
 //----------------------------------------------------------
 function check_arguments($options) {
     if (array_key_exists("o", $options)) {
 		if ($options["o"] < 0 or $options["o"] > 99) {
 			return FALSE;
 		}
     }
     return TRUE;
 }
 
 function usage() {
     $usage =
     "Uasge: php trades.php [-o offset]" . PHP_EOL .
     "Options:" . PHP_EOL .
     "  -o : offset (range from 1 to 99)" . PHP_EOL .
     PHP_EOL;
     fputs(STDERR, $usage);
 }

* 実行例 [#o4aba1fe]
上記のPHPサンプルソースを実行してみます。~
オプション-oにより指定された数分スキップします。~
スキップ数の範囲は0〜99になります。
 $ php trades.php 
 Array
 (
    [0] => Array
        (
            [id] => 34919836
            [amount] => 0.07593101
            [rate] => 833360
            [order_type] => sell
            [created_at] => 2017-11-03T17:06:49.000Z
        )
 
    [1] => Array
        (
            [id] => 34919835
            [amount] => 0.0999
            [rate] => 833360
            [order_type] => sell
            [created_at] => 2017-11-03T17:06:49.000Z
        )
 <省略>
    [50] => Array
        (
            [id] => 34919786
            [amount] => 0.07
            [rate] => 833215
            [order_type] => sell
            [created_at] => 2017-11-03T17:06:47.000Z
        )
 
 )

 $ php trades.php -o 99
 Array
 (
    [0] => Array
        (
            [id] => 34920162
            [amount] => 0.3
            [rate] => 832886
            [order_type] => sell
            [created_at] => 2017-11-03T17:07:47.000Z
        )
 
 )

BTCの取引履歴が返却されます。


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


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


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS