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


Zaifのアカウント残高をAPIで取得する・get_info, get_info2

get_info, get_info2 APIを使用することにより、Zaif にある残高(資産)を確認することができます。
以下にPHPを使用したサンプルソースおよび実行例を記します。


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


関連記事

get_info, get_info2 API使用

本APIを使用するには、Zaif の口座開設が必要となります。

  • get_info API仕様
    ZaifAPI ドキュメントページから抜粋
    get_info
    現在の残高(余力および残高・トークン)、APIキーの権限、過去のトレード数、アクティブな注文数、サーバーのタイムスタンプを取得します。
    
    パラメータ
    なし
    戻り値
    <省略>
    キー	詳細	型
    funds	資産の残高	dict
     deposit	資産の残高に注文情報を加味したもの	dict
    rights	キーが保持している権限	dict
    trade_count	実行したトレード数	int
    open_orders	アクティブな注文数	int
    server_time	UNIX時間で換算された日本時間	int
    deposit計算式
    depositは現在の資産の残高に注文情報を加味したものになります。
    買い注文が存在する場合、その注文の値段と量をかけ合わせたもので、
    売り注文が存在する場合は、その注文の量のみが加味されます。
  • get_info2 API仕様
    ZaifAPI ドキュメントページから抜粋
    get_info2
    get_infoの軽量版で、過去のトレード数を除く項目を返します。
    <省略>

get_info, get_info2 APIの違い

上記API仕様の抜粋に記されている通り、過去のトレード数の有無が違いのようです。

[trade_count]

残高出力のサンプルコード

get_info, get_info2で取得したfundsとdeposit一覧を表示するサンプルコードを以下に記します。
get_info.phpもget_info2.phpの処理内容は全く同じです。
メソッド名が異なるだけです。($method変数参照)

$ diff get_info.php get_info2.php
2c2
< // API doc : http://techbureau-api-document.readthedocs.io/ja/latest/trade/2_individual/1_get_info.html
---
> // API doc : http://techbureau-api-document.readthedocs.io/ja/latest/trade/2_individual/2_get_info2.html
7c7
< $method = "get_info";
---
> $method = "get_info2";

メソッド名が異なるだけなので、get_info APIを使用したget_info.phpソースを以下に記します。
(get_info2を使用したget_info2.phpもダウンロード可能です。)

fileget_info.php.zip fileget_info2.php.zip

<?php
// API doc : http://techbureau-api-document.readthedocs.io/ja/latest/trade/2_individual/1_get_info.html

// zaif trade api url
$zaif_api_url  = "https://api.zaif.jp/tapi";
// api method name
$method = "get_info";

// Please set API_KEY and API_SECRET_KEY
$API_KEY = "APIキーを設定してください"; 
$API_SECRET_KEY = "APIシークレットキーを設定してください。"; 

// proxy settings
$proxy      = "";
$proxy_port = "";

$nonce = time();
$body = http_build_query(
    array(
        "nonce"=>$nonce,
        "method"=>$method
    )
);
$signature = hash_hmac("sha512", $body, $API_SECRET_KEY);
$headers = array(
    "Sign: {$signature}",
    "Key: {$API_KEY}"
);

$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_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);
}

curl_setopt($curl, CURLOPT_URL, $zaif_api_url);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

$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);
}

curl_close($curl);

//print_r($json_decode);
if (!$json_decode["success"]) {
    fputs(STDERR, "[ERR] " . $json_decode["error"] . PHP_EOL);
    die(1);
}

// funds key sort array
$funds = $json_decode["return"]["funds"];
ksort($funds);
// deposit key sort array
$deposit = $json_decode["return"]["deposit"];
ksort($deposit);

print("-------- Funds --------" . PHP_EOL);
foreach ($funds as $key => $val) {
    printf("%10s\t%f" . PHP_EOL, $key, $val);
}
print("-------- Deposit --------" . PHP_EOL);
foreach ($deposit as $key => $val) {
    printf("%10s\t%f" . PHP_EOL, $key, $val);
}

exit(0);

APIキー, APIシークレットキー

上記サンプルコード内にある、以下の部分ですが、APIキーの設定が必要となります。

$API_KEY = "APIキーを設定してください"; 
$API_SECRET_KEY = "APIシークレットキーを設定してください。"; 

以下の記事を参考にAPIキーを取得してください。

  • Zaif APIキー生成手順 APIキーを生成すると以下のスクリーンショットのように2つのAPIキーが表示されます。
    zaifapi.png

実行例

上記のサンプルコードを実行した結果です。
funds, depositを表示します。

$ php get_info.php
-------- Funds --------
      BCH      0.000001
      ETH      0.000001
 PEPECASH      1.009010
     ZAIF      1.000000
      btc      0.010000
      jpy      1.000000
     mona      1.000000
      xem      1.000000
-------- Deposit --------
      BCH      0.000001
      ETH      0.000001
 PEPECASH      1.009010
     ZAIF      1.000000
      btc      0.010000
      jpy      1.000000
     mona      1.000000
      xem      1.000000

以上、get_info, get_info2 APIを使用し残高を確認するサンプルコードおよび実行例でした。


添付ファイル: fileget_info2.php.zip 252件 [詳細] fileget_info.php.zip 233件 [詳細] filezaifapi.png 266件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-12-07 (木) 00:43:34