- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2019-07-07T17:19:59+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時間の取引量|
* 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
#htmlinsert(cc-btm.html)