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

PHPを使って&htmlinsert(coincheck.html);の[[販売レート取得>]https://coincheck.com/ja/documents/exchange/api#buy-rate]]の使用例を以下に記します。~
販売レートの取得なので、&htmlinsert(coincheck.html);が取り扱っている通貨の販売レートが取得できます。

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

* 関連記事 [#ff64a274]
-[[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を呼び出してみる [#a074b3ff]
public APIなので&htmlinsert(coincheck.html);に取引口座を開設していなくても使用することができます。

販売レート取得のAPI仕様(Coincheck APIページから抜粋) ~
https://coincheck.com/ja/documents/exchange/api#buy-rate

 販売所のレートを取得します。
 HTTP REQUEST
 GET /api/rate/[pair]
 
 PARAMETERS
    *pair 通貨ペア ( "btc_jpy" "eth_jpy" "etc_jpy" "dao_jpy" "lsk_jpy" "fct_jpy" "xmr_jpy" "rep_jpy" "xrp_jpy" "zec_jpy" "xem_jpy" "ltc_jpy" "dash_jpy" "bch_jpy" "eth_btc" "etc_btc" "lsk_btc" "fct_btc" "xmr_btc" "rep_btc" "xrp_btc" "zec_btc" "xem_btc" "ltc_btc" "dash_btc" "bch_btc" )
 
 RESPONSE ITEMS
    rate レート

上記のpairに渡す値はPARAMETERSに記されている通貨ペアになります。
- btc_jpy
- eth_jpy
- etc_jpy
- dao_jpy
- lsk_jpy
- fct_jpy
- xmr_jpy
- rep_jpy
- xrp_jpy
- zec_jpy
- xem_jpy
- ltc_jpy
- dash_jpy
- bch_jpy
- eth_btc
- etc_btc
- lsk_btc
- fct_btc
- xmr_btc
- rep_btc
- xrp_btc
- zec_btc
- xem_btc
- ltc_btc
- dash_btc
- bch_btc

今後取扱通貨が増えたらこの通貨ペアも増えるでしょうね。


* ブラウザで販売レートを取得する [#j704c699]
GETなのでブラウザ販売レート取得を取得することができます。~
BTC/JPY,ETH/JPYの例を記します。~
以下のようなURLになります。~
- BTC/JPY~
https://coincheck.com/api/rate/btc_jpy
- ETH/JPY~
https://coincheck.com/api/rate/eth_jpy

* ブラウザで販売レート取得APIにアクセスした結果 [#vca5b4dc]
以下ブラウザから上記URLにアクセスしたときの出力です。

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

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


* PHPで販売レート取得APIを呼び出してみる(サンプルソース) [#h9f07474]
PHPのサンプルソースは以下のようになります。
#ref(rate.php.zip)
 <?php
 // API doc : https://coincheck.com/ja/documents/exchange/api#buy-rate
 // API url : https://coincheck.com/api/rate/[pair]
 
 // rate api url
 $coincheck_api_url  = "https://coincheck.com/api/rate";
 $cryptocurrencies = array(
     "btc_jpy", "eth_jpy", "etc_jpy", "dao_jpy", "lsk_jpy",
     "fct_jpy", "xmr_jpy", "rep_jpy", "xrp_jpy", "zec_jpy",
     "xem_jpy", "ltc_jpy", "dash_jpy","bch_jpy", "eth_btc",
     "etc_btc", "lsk_btc", "fct_btc", "xmr_btc", "rep_btc",
     "xrp_btc", "zec_btc", "xem_btc", "ltc_btc", "dash_btc",
     "bch_btc"
 );
 
 $options = getopt("p:");
 if (!check_arguments($options, $cryptocurrencies)) {
     usage($cryptocurrencies);
     die(1);
 }
 
 // proxy settings
 $proxy      = "";
 $proxy_port = "";
 
 $curl = curl_init();
 if ($curl == FALSE) {
     fputs(STDERR, "[ERR] curl_init(): " . curl_error($curl) . PHP_EOL);
     die(1);
 }
 
 if (empty($options)) {
     $target_pair = $cryptocurrencies;
 } else {
     $target_pair = array($options["p"]);
 }
 
 $pair_rate = array();
 foreach ($target_pair as $pair) {
     // curl set options
     curl_setopt($curl, CURLOPT_URL, $coincheck_api_url . "/" . $pair);
     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);
     }
     // 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);
     }
     $pair_rate[$pair] = $json_decode["rate"];
 }
 curl_close($curl);
 
 // show rate
 print_r($pair_rate);
 exit(0);
 
 //----------------------------------------------------------
 // functions
 //----------------------------------------------------------
 function check_arguments($options, $cryptocurrencies) {
     if (array_key_exists('p' ,$options)) {
         if (!(in_array($options["p"] ,$cryptocurrencies))) {
             return FALSE;
         }
     }
     return TRUE;
 }
 
 function usage($cryptocurrencies) {
     $usage =
     "Uasge: php rate.php [-p pair]" . PHP_EOL .
     "Options:" . PHP_EOL .
     "  -p pair" . PHP_EOL .
     "e.g." . PHP_EOL .
     "  php rate.php            : show all pair rate.". PHP_EOL .
     "  php rate.php -p btc_jpy : show BTC/JPY rate.". PHP_EOL .
     "pair list" . PHP_EOL;
     $i = 0;
     foreach($cryptocurrencies as $p) {
         $i++;
         if ($i == 1)    { $usage = $usage . "  " . $p; }
         elseif ($i < 5) { $usage = $usage . ", " . $p; }
         else            { $usage = $usage . ", " . $p . PHP_EOL; $i = 0;}
     }
     fputs(STDERR, $usage . PHP_EOL);
 }

* 実行例 [#j225112a]
上記のPHPサンプルソースを実行してみます。~
オプション-pにより通貨ペアを指定することができます。~
オプションを指定しない場合は、全ての通貨の販売レートを表示します。
 $ php rate.php -p btc_jpy
 Array
 (
     [btc_jpy] => 837690.5
 )

 $ php rate.php -p eth_btc
 Array
 (
     [eth_btc] => 0.04137503
 )

 $ php rate.php
 Array
 (
    [btc_jpy] => 837348.0
    [eth_jpy] => 34487.02310148
    [etc_jpy] => 1383.03931812
    [dao_jpy] => 344.87014728
    [lsk_jpy] => 535.03187808
    [fct_jpy] => 1656.01476612
    [xmr_jpy] => 10003.796556
    [rep_jpy] => 2009.73568176
    [xrp_jpy] => 23.41225008
    [zec_jpy] => 26855.58415212
    [xem_jpy] => 20.28894204
    [ltc_jpy] => 6418.27242
    [dash_jpy] => 32221.83390129
    [bch_jpy] => 71104.31436423
    [eth_btc] => 0.04118601
    [etc_btc] => 0.00165169
    [lsk_btc] => 0.00063896
    [fct_btc] => 0.00197769
    [xmr_btc] => 0.011947
    [rep_btc] => 0.00240012
    [xrp_btc] => 0.00002796
    [zec_btc] => 0.03207219
    [xem_btc] => 0.00002423
    [ltc_btc] => 0.007665
    [dash_btc] => 0.03848031
    [bch_btc] => 0.08491497
 )

&htmlinsert(coincheck.html);が取扱っている通貨の販売レート取得が返却されます。


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


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

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