#author("2018-01-14T13:58:22+09:00","","")
#author("2018-01-30T22:37:31+09:00","","")
#navi(../)


* coincheckの残高API(balance)のサンプルコード(PHP) [#bbe095ed]
PHPを使って&htmlinsert(coincheck.html);の[[アカウントの残高確認API>https://coincheck.com/ja/documents/exchange/api#account-balance]]のサンプルコードを以下に記します。

----
&color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。};
----
#htmlinsert(coincheck_wide.html)

#contents
#htmlinsert(cc-top.html)

* 関連記事 [#nf5820b1]
-[[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の仕様 [#xf270242]
残高APIはPrivate APIのため、&htmlinsert(coincheck.html);の口座開設が必要となります。

''残高APIの仕様''(Coincheck APIページから抜粋)~
 残高
 
 アカウントの残高を確認できます。
 jpy, btc には未決済の注文に利用している jpy_reserved, btc_reserved は含まれていません。
 
 HTTP REQUEST
 GET /api/accounts/balance
 
 RESPONSE ITEMS
 
    jpy 日本円の残高
    btc ビットコインの残高
    jpy_reserved 未決済の買い注文に利用している日本円の合計
    btc_reserved 未決済の売り注文に利用しているビットコインの合計
    jpy_lend_in_use 貸出申請をしている日本円の合計(現在は日本円貸出の機能を提供していません)
    btc_lend_in_use 貸出申請をしているビットコインの合計(現在はビットコイン貸出の機能を提供していません)
    jpy_lent 貸出をしている日本円の合計(現在は日本円貸出の機能を提供していません)
    btc_lent 貸出をしているビットコインの合計(現在はビットコイン貸出の機能を提供していません)
    jpy_debt 借りている日本円の合計
    btc_debt 借りているビットコインの合計

* 残高APIサンプルソースを使用する前の準備 [#j9f463ba]
本サンプルソースには、$ACCESS_KEY, $SECRET_ACCESS_KEY にAPIキーを設定していません。~
APIキーを準備してください。~
 // Please set ACCESS_KEY and SECRET_ACCESS_KEY
 $ACCESS_KEY = "";
 $SECRET_ACCESS_KEY = "";
APIキーの作成に関しては以下の記事を参考にしてください。~
-[[CoincheckのAPIキー生成手順>API/coincheck/APIキー生成手順]]

本サンプルソースを実行するには、APIキーのパーミッションとして「残高」にチェックが必要です。~
#ref(01.png)
#br
APIキーを作成すると、以下のスクリーンショットのように「アクセスキー」「アクセスシークレットキー」が作成されるので、~
サンプルソースの $ACCESS_KEY, $SECRET_ACCESS_KEY に設定してください。
#ref(02.png)
#br
----
#htmlinsert(coincheck_wide.html)


* 残高API PHPサンプルソース [#gf219185]
以下に&htmlinsert(coincheck.html);の残高APIを呼び出すサンプルソースを記します~
上記に記述しましたが、「アクセスキー」「アクセスシークレットキー」を準備してください。

#ref(balance.php.zip)
 <?php
 // API doc : https://coincheck.com/ja/documents/exchange/api#account-balance
 // API url : https://coincheck.com/api/accounts/balance
 
 // Please set ACCESS_KEY and SECRET_ACCESS_KEY
 $ACCESS_KEY = "アクセスキーを設定してください";
 $SECRET_ACCESS_KEY = "シークレットアクセスキーを設定してください";
 
 // proxy settings
 $proxy      = ""; 
 $proxy_port = ""; 
 
 // coincheck balance api url
 $url = "https://coincheck.com/api/accounts/balance";
 
 // create signature
 $nonce = time();
 $message = $nonce . $url;
 $signature = hash_hmac("sha256", $message, $SECRET_ACCESS_KEY);
 // header
 $headers = array(
     "ACCESS-KEY: {$ACCESS_KEY}",
     "ACCESS-SIGNATURE: {$signature}",
     "ACCESS-NONCE: {$nonce}",
     );
 
 $curl = curl_init();
 if ($curl == FALSE) {
     fputs(STDERR, "[ERR] curl_init(): " . curl_error($curl) . PHP_EOL);
     die(1);
 }
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
 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);
 }
 
 $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);
 if (!$json_decode["success"]) {
     fputs(STDERR,"[ERROR] : " . $json_decode["error"] . PHP_EOL);
     die(1);
 }
 printf("JPY: %f" . PHP_EOL, $json_decode["jpy"]);
 printf("BTC: %f" . PHP_EOL, $json_decode["btc"]);
 printf("BCH: %f" . PHP_EOL, $json_decode["bch"]);
 printf("ETH: %f" . PHP_EOL, $json_decode["eth"]);
 printf("ETC: %f" . PHP_EOL, $json_decode["etc"]);
 printf("XRP: %f" . PHP_EOL, $json_decode["xrp"]);
 printf("XEM: %f" . PHP_EOL, $json_decode["xem"]);
 printf("LTC: %f" . PHP_EOL, $json_decode["ltc"]);
 printf("LSK: %f" . PHP_EOL, $json_decode["lsk"]);
 printf("FCT: %f" . PHP_EOL, $json_decode["fct"]);
 printf("XMR: %f" . PHP_EOL, $json_decode["xmr"]);
 printf("REP: %f" . PHP_EOL, $json_decode["rep"]);
 printf("ZEC: %f" . PHP_EOL, $json_decode["zec"]);
 printf("DASH:%f" . PHP_EOL, $json_decode["dash"]);
 
 exit(0);

* 残高API PHPサンプルソース実行結果 [#f4b13479]
以下、上記のサンプルソースを実行したときの出力です。
 $ php balance.php 
 JPY: 0.000000
 BTC: 0.000000
 BCH: 0.000000
 ETH: 0.000000
 ETC: 0.000000
 XRP: 0.000000
 XEM: 0.000000
 LTC: 0.000000
 LSK: 0.000000
 FCT: 0.000000
 XMR: 0.000000
 REP: 0.000000
 ZEC: 0.000000
 DASH:0.000000

** invalid authentication エラーになった場合 [#kc9a61ee]
以下のようにERRORが出た場合は、APIキーの設定に誤りがないか確認してください。
 $ php balance.php
 [ERROR] : invalid authentication

** This api is not permitted... エラーになった場合 [#z1127d3c]
APIキーの設定を確認してください。~
残高にチェックが入っていないためパーミッションエラーとなっています。
 $ php balance.php
 [ERROR] : This api is not permitted, Please set permission. https://coincheck.com/api_settings


以上、&htmlinsert(coincheck.html);の残高API(balance)を呼び出すサンプルソースおよび実行結果でした。
----
#htmlinsert(coincheck_wide.html)

#htmlinsert(cc-btm.html)


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