#author("2019-07-07T17:19:59+09:00","","")
#author("2019-07-07T17:22:48+09:00","","")
#navi(../)

* PowerShellによるGMOコインのティッカーAPI呼び出し(PowerShell) [#s8609127]
&color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。};
----

PowerShellを使ってGMOコインの[[最新レート>https://api.coin.z.com/docs/#ticker]]APIの使用例を以下に記します。

#contents
#htmlinsert(cc-top.html)

//* 関連記事 

* 最新レートのAPI仕様(GMOコインAPIページから抜粋) [#k507414c]
最新レートのAPI仕様~
https://api.coin.z.com/docs/#ticker

- ''最新レート''
指定した銘柄の最新レートを取得します。~
全銘柄分の最新レートを取得する場合はsymbolパラメータ指定無しでの実行をおすすめします。~

-''Request''
GET /public/v1/ticker

-''Parameters''~
Parameter type: query
|''Parameter''|''Type''|''Required''|''Available Values''|
|symbol|string|optional|指定しない場合は全銘柄分の最新レートを返す。&br;BTC ETH BCH LTC XRP BTC_JPY ETH_JPY BCH_JPY LTC_JPY XRP_JPY|

-''Response''
|''Property Name''|''Value''|''Description''|
|list.volume|string|24時間の取引量|

* 全ての最新レートを取得し表示するスクリプト [#n924fb6e]
最新レートAPIが対応しているSymbolのレートをすべて取ってきて表示します。~
Private APIの呼出上限が最大300ミリ秒1回という制限があるので、500ミリ秒ごとに取得するサンプルとなっています。
 function Get-GMOCoinTicker {
   $endPoint = "https://api.coin.z.com/public"
   $path = "/v1/ticker"
   $symbols = ("BTC","ETH","BCH","LTC","XRP","BTC_JPY","ETH_JPY","BCH_JPY","LTC_JPY","XRP_JPY")
   $ary = @()
   foreach($symbol in $symbols) {
     $uri = $endPoint + $path + "?symbol=" + $symbol
     $res = Invoke-RestMethod -UseBasicParsing -Uri $uri
     # debug
     # $res
     Write-Host -NoNewline "."
     Start-Sleep -m 500
     $ary += $res.data
   }
   $ary | Select-Object symbol, ask, bid, high, last, volume, timestamp | Format-Table
 }
上記の関数を実際に実行したときの出力になります。
 PS C:\> Get-GMOCoinTicker
 ..........
 symbol  ask     bid     high    last    volume  timestamp               
 ------  ---     ---     ----    ----    ------  ---------               
 BTC     1211265 1210510 1240000 1211265 488.754 2019-07-07T08:19:21.428Z
 ETH     31234   31120   31652   31268   1122.42 2019-07-07T08:19:22.786Z
 BCH     43660   43650   44500   43755   139.18  2019-07-07T08:19:23.166Z
 LTC     12848   12800   12890   12864   1046.6  2019-07-07T08:19:24.018Z
 XRP     42.665  42.382  43.2    42.672  2853780 2019-07-07T08:19:24.201Z
 BTC_JPY 1211127 1210162 1243172 1210582 5877.37 2019-07-07T08:19:24.289Z
 ETH_JPY 31200   31139   31645   31245   1044.1  2019-07-07T08:19:25.865Z
 BCH_JPY 43614   43565   44709   43699   410.9   2019-07-07T08:19:25.982Z
 LTC_JPY 12833   12810   12908   12846   1154    2019-07-07T08:19:26.584Z
 XRP_JPY 42.6    42.5    43.22   42.59   6370600 2019-07-07T08:19:26.705Z

本関数で使用している最新レートAPI呼び出しコマンドレットについて以下で説明しています。

* PowerShellコマンドラインで最新レート(ティッカー)APIを呼び出してみる [#qb42a6ea]
''Invoke-WebRequest''コマンドレットと''ConvertFrom-Json''コマンドレットまたは、Invoke-RestMethodコマンドレット単コマンドで簡単に実現できます。~
使い分けとしては、HTTPステータスを取得したい場合などは、Invoke-WebRequestを実行後、HTTPステータスを確認し、ConvertFrom-Jsonコマンドレットを使用すれば良いと思います。~
JSON化された情報の取り出しだけであれば、Invoke-RestMethodコマンドレット便利ですね。

** Invoke-RestMethodコマンドレット使用例 [#i10f6984]
以下、PowerShellコンソールの出力です。~
JSON形式でティッカー情報が取得されているのが確認できます。
 PS C:\> $endPoint = "https://api.coin.z.com/public"
 PS C:\> $path = "/v1/ticker"
 PS C:\> $symbol = "BTC"
 PS C:\> $uri = $endPoint + $path + "?symbol=" + $symbol
 PS C:\> $res = Invoke-RestMethod $uri
 PS C:\> $res
 
 status data
 ------ ----
      0 {@{ask=1214589; bid=1213198; high=1240000; last=1212888; low=1202868; symbol=BTC; timestamp=2019-07-07T07:58:...
 
 
 PS C:\> $res.data
 
 ask       : 1214589
 bid       : 1213198
 high      : 1240000
 last      : 1212888
 low       : 1202868
 symbol    : BTC
 timestamp : 2019-07-07T07:58:31.685Z
 volume    : 498.9099


** Invoke-WebRequest, ConvertFrom-Jsonコマンドレット使用例 [#mc296c62]
*** Invoke-WebRequestでティッカーAPIを呼び出してみる [#a19908ea]
以下、PowerShellコンソールの出力です。~
JSON形式でティッカー情報が取得されているのが確認できます。
 PS C:\> $endPoint = "https://api.coin.z.com/public"
 PS C:\> $path = "/v1/ticker"
 PS C:\> $symbol = "BTC"
 PS C:\> $uri = $endPoint + $path + "?symbol=" + $symbol
 PS C:\> $res = Invoke-WebRequest -UseBasicParsing $uri
 PS C:\> $res.Content
 {"status":0,"data":[{"ask":"1213736","bid":"1213060","high":"1240000","last":"1213500","low":"1202868","symbol":"BTC","timestamp":"2019-07-07T08:03:40.852Z","volume":"492.6736"}],"responsetime":"2019-07-07T08:03:41Z"}
 {"last":850808.0,"bid":850763.0,"ask":850987.0,"high":875000.0,"low":836916.0,"volume":5665.81651804,"timestamp":1524024814}

*** ConvertFrom-Jsonを使って便利に使う [#l464743c]
以下、PowerShellコンソールの出力です。~
上記のInvoke-WebRequestで取得したJSON形式のティッカー情報がConvertFrom-Jsonコマンドレットを通すことにより便利に使えます。
 PS C:\> $json_res = ($res.Content | ConvertFrom-Json)
 PS C:\> $json_res.data
 
 
 ask       : 1213736
 bid       : 1213060
 high      : 1240000
 last      : 1213500
 low       : 1202868
 symbol    : BTC
 timestamp : 2019-07-07T08:03:40.852Z
 volume    : 492.6736

* 全ての最新レートを取得し表示するスクリプト [#n924fb6e]
最新レートAPIが対応しているSymbolのレートをすべて取ってきて表示します。~
Private APIの呼出上限が最大300ミリ秒1回という制限があるので、500ミリ秒ごとに取得するサンプルとなっています。
 function Get-GMOCoinTicker {
   $endPoint = "https://api.coin.z.com/public"
   $path = "/v1/ticker"
   $symbols = ("BTC","ETH","BCH","LTC","XRP","BTC_JPY","ETH_JPY","BCH_JPY","LTC_JPY","XRP_JPY")
   $ary = @()
   foreach($symbol in $symbols) {
     $uri = $endPoint + $path + "?symbol=" + $symbol
     $res = Invoke-RestMethod -UseBasicParsing -Uri $uri
     # debug
     # $res
     Write-Host -NoNewline "."
     Start-Sleep -m 500
     $ary += $res.data
   }
   $ary | Select-Object symbol, ask, bid, high, last, volume, timestamp | Format-Table
 }
上記の関数を実際に実行したときの出力になります。
 PS C:\> Get-GMOCoinTicker
 ..........
 symbol  ask     bid     high    last    volume  timestamp               
 ------  ---     ---     ----    ----    ------  ---------               
 BTC     1211265 1210510 1240000 1211265 488.754 2019-07-07T08:19:21.428Z
 ETH     31234   31120   31652   31268   1122.42 2019-07-07T08:19:22.786Z
 BCH     43660   43650   44500   43755   139.18  2019-07-07T08:19:23.166Z
 LTC     12848   12800   12890   12864   1046.6  2019-07-07T08:19:24.018Z
 XRP     42.665  42.382  43.2    42.672  2853780 2019-07-07T08:19:24.201Z
 BTC_JPY 1211127 1210162 1243172 1210582 5877.37 2019-07-07T08:19:24.289Z
 ETH_JPY 31200   31139   31645   31245   1044.1  2019-07-07T08:19:25.865Z
 BCH_JPY 43614   43565   44709   43699   410.9   2019-07-07T08:19:25.982Z
 LTC_JPY 12833   12810   12908   12846   1154    2019-07-07T08:19:26.584Z
 XRP_JPY 42.6    42.5    43.22   42.59   6370600 2019-07-07T08:19:26.705Z
以上、GMOコインの銘柄の最新レートを取得するAPIをPowerShellで操作する記事でした。


#htmlinsert(cc-btm.html)

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