当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。
当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。
あらかじめご了承ください。
PHPを使って Coincheck のレート取得の使用例を以下に記します。
public APIなので Coincheck に取引口座を開設していなくても使用することができます。
レート取得のAPI仕様(Coincheck APIページから抜粋)
取引所の注文を元にレートを算出します。
GET /api/exchange/orders/rate
PARAMETERS
*order_type 注文のタイプ("sell" or "buy")
*pair 取引ペア。現在は "btc_jpy" のみです。
amount 注文での量。(例)0.1
price 注文での金額。(例)28000
GETなのでブラウザでレートを取得することができます。
以下のようなURLになります。
https://coincheck.com/api/exchange/orders/rate?order_type=<sellまたはbuy>&pair=btc_jpy&amount=数量
以下のようなURLになります。
https://coincheck.com/api/exchange/orders/rate?order_type=<sellまたはbuy>&pair=btc_jpy&price=金額
以下ブラウザから上記URLにアクセスしたときの出力です。
PHPのサンプルソースは以下のようになります。
<?php
// API doc : https://coincheck.com/ja/documents/exchange/api#order-rate
// API url : https://coincheck.com/api/exchange/orders/rate
$options = getopt("s::b::a:p:");
if (!check_arguments($options)) {
usage();
die(1);
}
// arguments -> http query
$http_query = array();
$http_query["pair"] = "btc_jpy";
foreach ($options as $key => $value) {
if ($key == "b") { $http_query["order_type"] = "buy"; }
elseif ($key == "s") { $http_query["order_type"] = "sell"; }
elseif ($key == "p") { $http_query["price"] = $value; }
elseif ($key == "a") { $http_query["amount"] = $value; }
}
$coincheck_url = "https://coincheck.com";
$order_rate_api = "/api/exchange/orders/rate";
$url = $coincheck_url . $order_rate_api . "?" . 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 order-rate 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('s' ,$options) xor array_key_exists('b' ,$options))) {
return FALSE;
}
if (!(array_key_exists('a',$options) xor array_key_exists('p' ,$options))) {
return FALSE;
}
return TRUE;
}
function usage() {
$usage =
"Uasge: php order_rate.php OPTIONS" . PHP_EOL .
" php order-rate.php -s|-b -a AMOUNT" . PHP_EOL .
" or" . PHP_EOL .
" php order-rate.php -s|-b -p PRICE" . PHP_EOL . PHP_EOL .
"Options:" . PHP_EOL .
" -s : sell" . PHP_EOL .
" -b : buy" . PHP_EOL .
" -a value : BTC amount" . PHP_EOL .
" -p price : trading JPY" . PHP_EOL . PHP_EOL .
"e.g." . PHP_EOL .
" - 0.5BTC sell rate". PHP_EOL .
" php order-rate.php -s -a 0.5" . PHP_EOL .
" - 100000JPY sell rate". PHP_EOL .
" php order-rate.php -s -p 100000" . PHP_EOL .
" - 0.5BTC buy rate". PHP_EOL .
" php order-rate.php -b -a 0.5" . PHP_EOL .
" - 100000JPY buy rate". PHP_EOL .
" php order-rate.php -b -p 100000" . PHP_EOL .
PHP_EOL;
fputs(STDERR, $usage);
}
上記のPHPサンプルソースを実行してみます。
サンプルソースを実行するには、以下のようのオプションが必要になります。
$ php order-rate.php -s -a 0.5
Array
(
[success] => 1
[rate] => 814459.0
[amount] => 0.5
[price] => 407229.5
)$ php order-rate.php -b -a 0.5
Array
(
[success] => 1
[rate] => 814857.77312
[amount] => 0.5
[price] => 407428.8865622
)$ php order-rate.php -s -p 10000
Array
(
[success] => 1
[rate] => 814853.14309
[amount] => 0.01227215
[price] => 10000.0
)$ php order-rate.php -b -p 10000
Array
(
[success] => 1
[rate] => 814984.63346
[amount] => 0.01227017
[price] => 10000.0
)以上、 Coincheck のpublic APIであるレート取得をブラウザによるアクセスとPHPによるレート取引呼び出しのサンプルコードの記事でした。