- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-06-17T01:59:36+09:00","","")
#author("2018-06-20T09:59:22+09:00","","")
#navi(../)
* PowerShellでCoinExchange.ioの通貨一覧情報を取得する・getcurrencies [#t7bbb3ec]
&htmlinsert(coinexchange.io.html);の''getcurrencies'' APIをPowerShellで呼び出す方法の記事になります。
----
&htmlinsert(coinexchange.io.html);へのリンク~
#htmlinsert(coinexchange.io.logo.html)
#contents
* 関連資料・記事 [#na55a333]
-[[CoinExchange.io API v1 Reference>http://coinexchangeio.github.io/slate/]]
-[[マーケット一覧情報取得・getmarkets(PowerShell)>API/CoinExchange.io/マーケット一覧情報取得・getmarkets(PowerShell)]]
-[[マーケットサマリ情報取得・getmarketsummaries(PowerShell)>API/CoinExchange.io/マーケットサマリ情報取得・getmarketsummaries(PowerShell)]]
-[[指定した通貨ペアのマーケットサマリ情報を取得・getmarketsummary(PowerShell)>API/CoinExchange.io/指定した通貨ペアのマーケットサマリ情報を取得・getmarketsummary(PowerShell)]]
-[[MarketID一覧情報を取得する>API/CoinExchange.io/MarketID一覧を取得する・getmarkets(PowerShell)]]
-[[仮想通貨一覧を取得・getcurrencies>API/CoinExchange.io/仮想通貨一覧を取得・getcurrencies(PowerShell)]]
* getcurrencies APIの使用 [#h7d2c4a5]
以下、[[CoinExchange.io API v1 Reference>http://coinexchangeio.github.io/slate/]] からの抜粋です。
Get Currencies
This endpoint retrieves all enabled currencies / assets.
HTTP Request
GET https://www.coinexchange.io/api/v1/getcurrencies
'getcurrencies’ JSON return:
{
"success":"1",
"request":"\/api\/v1\/getcurrencies",
"message":"","result": [
{"CurrencyID":"1","Name":"Bitcoin","TickerCode":"BTC","WalletStatus":"online","Type":"currency"},
{"CurrencyID":"2","Name":"Darkcoin","TickerCode":"DRK","WalletStatus":"offline","Type":"currency"},
{"CurrencyID":"3","Name":"Ethereum","TickerCode":"ETH","WalletStatus":"online","Type":"currency"}
]
}
* getcurrencies API をブラウザでアクセスしてみた [#ud3940f8]
getcurrencies API をFirefoxでアクセスしてみました。~
https://www.coinexchange.io/api/v1/getcurrencies
#ref(01.png)
* PowerShellのInvoke-RestMethodを使用してAPIを呼び出してみる [#ncfd1307]
PowerShellのInvoke-RestMethodコマンドレットを使用して、getcurrencies APIを呼び出し操作してみます。~
以下、getcurrencies APIを呼び出し操作するサンプル手順です。
セキュリティプロトコルをTLS1.2に変更します。(2018/5/31時点、TLS1.2を指定しないと動作しなくなったので追記)
PS C:\> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
PS C:\> $currencies = Invoke-RestMethod -UseBasicParsing "https://www.coinexchange.io/api/v1/getcurrencies"
PS C:\> $currencies
success request message result
------- ------- ------- ------
1 /api/v1/getcurrencies {@{CurrencyID=44; Name=Elite; TickerCode=1337; WalletStatus=online; Type=currency}, @{CurrencyID...
Invoke-RestMethodコマンドレットでgetcurrencies APIを呼び出すことにより、値が取得できます。~
実際の通貨一覧は、以下のようにして表示することができます。
PS C:\> $currencies.result | Format-Table
PS C:\> $currencies.result | Format-Table
CurrencyID Name TickerCode WalletStatus Type
---------- ---- ---------- ------------ ----
44 Elite 1337 online currency
218 Ganjacoin 420G offline currency
296 SixEleven 611 online currency
404 Adcoin ACC online currency
527 Accelerator ACCL online ethereum_asset
<省略>
以下、Bitcoinのcurrency情報を確認する手順です。
PS C:\> $currencies.result | Where-Object { $_.Name -eq "bitcoin" }
CurrencyID : 1
Name : Bitcoin
TickerCode : BTC
WalletStatus : online
Type : currency
* HTTPステータスなどを一緒に取得したい場合はInvoke-WebRequestが便利! [#g7c6f59e]
上記では、Invoke-RestMethodにてJSONをPowerShellで扱いやすい状態に変換してくれますが、~
Webサーバから返却された値を変換せずに取得したい場合は、Invoke-WebRequestコマンドレットを使用します。~
また、取得後にJSONをPowerShellで扱いやすいオブジェクトに変換するには、''ConvertFrom-Json''コマンドレットを使用します。~
以下に実行例を記します。
+ セキュリティプロトコルをTLS1.2に変更します。(2018/5/31時点、TLS1.2を指定しないと動作しなくなったので追記)
PS C:\> [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+ Invoke-WebRequestコマンドレットでAPIを呼び出し返却された情報を変数に格納しています。
PS C:\> $response = Invoke-WebRequest -UseBasicParsing "https://www.coinexchange.io/api/v1/getcurrencies"
+返却された情報を表示してみます。
PS C:\> $response
StatusCode : 200
StatusDescription : OK
Content : {"success":"1","request":"\/api\/v1\/getcurrencies","message":"","result":[{"CurrencyID":"44","Name":"Elite","TickerC
ode":"1337","WalletStatus":"online","Type":"currency"},{"CurrencyID":"218","Name":"...
RawContent : HTTP/1.1 200 OK
Transfer-Encoding: chunked
Connection: keep-alive
x-frame-options: SAMEORIGIN
Cache-Control: no-cache
Content-Type: application/json
Date: Sat, 16 Jun 2018 16:49:58 GMT
Set-Cook...
Forms :
Headers : {[Transfer-Encoding, chunked], [Connection, keep-alive], [x-frame-options, SAMEORIGIN], [Cache-Control, no-cache]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml :
RawContentLength : 59966
+ HTTPステータスやContent-Typeを簡単に取得することができます。
PS C:\> $response.StatusCode
200
PS C:\> $response.Headers.'Content-Type'
application/json
+ ''ConvertFrom-Json''コマンドレットを使ってみます。
PS C:\> $json = ConvertFrom-Json $response.Content
PS C:\> $json
success request message result
------- ------- ------- ------
1 /api/v1/getcurrencies {@{CurrencyID=44; Name=Elite; TickerCode=1337; WalletStatus=online; Type=currency}, @{CurrencyID...
PS C:\> $json.result | Where-Object { $_.TickerCode -eq "XSH" }
CurrencyID : 532
Name : Shield
TickerCode : XSH
WalletStatus : online
Type : currency
** Webの応答を読み取っています。(Waiting for response)を非表示にする方法 [#za344b05]
上記のコマンドレットを実行すると、APIサーバとのやり取りのプログレスメッセージが表示されます。~
#ref(02.png)
これを非表示にしたい場合は、以下のようにしてください。
非表示にするには、$ProgressPreferenceにSilentlyContinueを設定します。~
変更前は以下のように Continue が設定されています。
PS C:\> $ProgressPreference
Continue
非表示にするには、以下のように変更します。
PS C:\> $ProgressPreference = "SilentlyContinue"
以上、PowerShellを使って、&htmlinsert(coinexchang.io.html);の getcurrenciesを使って~
以上、PowerShellを使って、&htmlinsert(coinexchange.io.html);の getcurrenciesを使って~
通貨情報を取得する操作例でした。
----
&htmlinsert(coinexchange.io.html);へのリンク~
#htmlinsert(coinexchange.io.logo.html)