#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)