このエントリーをはてなブックマークに追加


coincheckのレート取得APIのサンプルコード(PHP)

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


PHPを使って Coincheck のレート取得の使用例を以下に記します。


スポンサーリンク

関連記事

ブラウザでレート取得のAPIを呼び出してみる

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

BTCの数量で取引レート(価格)を取得する

GETなのでブラウザでレートを取得することができます。
以下のようなURLになります。

https://coincheck.com/api/exchange/orders/rate?order_type=<sellまたはbuy>&pair=btc_jpy&amount=数量

指定した金額で売買できるBTC量を取得する

以下のようなURLになります。

https://coincheck.com/api/exchange/orders/rate?order_type=<sellまたはbuy>&pair=btc_jpy&price=金額

ブラウザでアクセスした結果

以下ブラウザから上記URLにアクセスしたときの出力です。

  • Vivaldi
    JSON形式で返却された文字列がそのまま表示されているのが確認できます。
    01.png
     
  • Firefox ver56.0
    JSONが整形され表示されています。
    見やすいですね。
    02.png
     
    生データをクリックすると上記同様にJSON形式の返却された文字列が表示されます。
    03.png

PHPでレート取得APIを呼び出してみる(サンプルソース)

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サンプルソースを実行してみます。

サンプルソースのオプション

サンプルソースを実行するには、以下のようのオプションが必要になります。

  • -s : sell
  • -b : buy 上記のどちらかのオプションを必ず設定してください。
  • -a : BTC数量
  • -p : JPY 上記のどちらかのオプションを必ず設定してください。

実際に動かしてみた

  • sell 数量0.5BTCのレートを取得
    $ php order-rate.php -s -a 0.5
    Array
    (
        [success] => 1
        [rate] => 814459.0
        [amount] => 0.5
        [price] => 407229.5
    )
  • buy 数量0.5BTCのレートを取得
    $ php order-rate.php -b -a 0.5
    Array
    (
        [success] => 1
        [rate] => 814857.77312
        [amount] => 0.5
        [price] => 407428.8865622
    )
  • sell 10000円に必要なBTC数量
    $ php order-rate.php -s -p 10000
    Array
    (
        [success] => 1
        [rate] => 814853.14309
        [amount] => 0.01227215
        [price] => 10000.0
    )
  • buy 10000円で買えるBTC数量
    $ php order-rate.php -b -p 10000
    Array
    (
        [success] => 1
        [rate] => 814984.63346
        [amount] => 0.01227017
        [price] => 10000.0
    )

以上、 Coincheck のpublic APIであるレート取得をブラウザによるアクセスとPHPによるレート取引呼び出しのサンプルコードの記事でした。


スポンサーリンク

添付ファイル: fileorder-rate.php.zip 31件 [詳細] file03.png 97件 [詳細] file02.png 98件 [詳細] file01.png 104件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-11-04 (土) 17:49:23 (401d)