#author("2018-07-13T09:19:37+09:00","","") #author("2018-07-13T09:21:44+09:00","","") #navi(../) * Bitfinexの通貨ペアシンボル一覧をPowerShellで取得する(API v1) [#tfaaee73] PowerShellでBitfinexの通貨ペアのシンボル一覧を取得する例を以下に記します。~ #contents #htmlinsert(cc-top.html) * 参考資料 [#xc369798] Bitfinexの通貨ペアシンボルを取得するAPIドキュメントURL~ API仕様は、以下のURLで確認してください。~ https://bitfinex.readme.io/v1/reference#rest-public-symbols * 関連記事 [#y1f2baae] -[[Bitfinexの通貨シンボル一覧の取得(API v1)(PowerShell)>API/Bitfinex/通貨ペアのシンボル一覧の取得(API v1)(PowerShell)]] -[[BitfinexのTickerの取得(API v1)(PowerShell)>API/Bitfinex/Tickerの取得(API v1)(PowerShell)]] -[[Bitfinexで指定した通貨ペアの取引量を取得する(API v1)(PowerShell)>API/Bitfinex/指定した通貨ペアの取引量を取得する(API v1)(PowerShell)]] -[[Bitfinexのファンディング情報を取得する(API v1)(PowerShell)>API/Bitfinex/ファンディング情報を取得する(API v1)(PowerShell)]] -[[Bitfinexの情報(注文一覧)を取得する(API v1)(PowerShell)>API/Bitfinex/情報情報(注文一覧)を取得する(API v1)(PowerShell)]] -[[Bitfinexの板情報(注文一覧)を取得する(API v1)(PowerShell)>API/Bitfinex/板情報(注文一覧)を取得する(API v1)(PowerShell)]] * ブラウザでアクセスしてみる [#x9af0315] 以下、URLでBitfinexの通貨ペアシンボル一覧を取得できます。~ https://api.bitfinex.com/v1/symbols Firefoxでアクセスした時のスクリーンショットです。~ |''JSON''|''生データ''| |&ref(01.png);|&ref(02.png);| * PowerShellによるアクセス [#f4e311d7] PowerShellの''Invoke-RestMethod''コマンドレットと、''Invoke-WebRequest''+''ConvertFrom-Json''コマンドレットを使って、~ Bitfinexの通貨ペア一覧を取得してみます。 ** ''Invoke-RestMethod''コマンドレット [#ce6723f2] ''Invoke-RestMethod''コマンドレットを使用して、Bitfinexの通貨ペア一覧を取得する操作例になります。 PS C:\> $v1_symbols_api = "https://api.bitfinex.com/v1/symbols" PS C:\> $symbols = Invoke-RestMethod -UseBasicParsing $v1_symbols_api PS C:\> $symbols btcusd ltcusd ltcbtc ethusd ethbtc etcbtc etcusd rrtusd rrtbtc zecusd zecbtc xmrusd xmrbtc <省略> 以下、xlmとxrpでマッチする通貨ペアを表示した操作例となります。 PS C:\> $symbols | Where-Object {$_ -match "xrp"} xrpusd xrpbtc PS C:\> $symbols | Where-Object {$_ -match "xlm"} xlmusd xlmeur xlmjpy xlmgbp xlmbtc xlmeth ** ''Invoke-WebRequest''+''ConvertFrom-Json''コマンドレット [#y5e4910a] ''Invoke-WebRequest''使うことにより、HTTPステータスや、Content-Typeなどを取得することができます。~ 取得したContent部分を''ConvertFrom-Json''コマンドレットを使うことにより、Invoke-RestMethodと同様に、~ JSON形式でアクセスすることができます。 + Invoke-WebRequestでsymbols APIをアクセス PS C:\> $v1_symbols_api = "https://api.bitfinex.com/v1/symbols" PS C:\> $response = Invoke-WebRequest -UseBasicParsing $v1_symbols_api + 取得したレスポンスを表示します。 PS C:\> $response StatusCode : 200 StatusDescription : OK Content : ["btcusd","ltcusd","ltcbtc","ethusd","ethbtc","etcbtc","etcusd","rrtusd","rrtbtc","zecusd","zecbtc" ,"xmrusd","xmrbtc","dshusd","dshbtc","btceur","btcjpy","xrpusd","xrpbtc","iotusd","iotbtc","ioteth" ,"... RawContent : HTTP/1.1 200 OK Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding X-Frame-Options: SAMEORIGIN,SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff X-... Forms : Headers : {[Transfer-Encoding, chunked], [Connection, keep-alive], [Vary, Accept-Encoding], [X-Frame-Options, SAMEORIGIN,SAMEORIGIN]...} Images : {} InputFields : {} Links : {} ParsedHtml : RawContentLength : 2179 +ステータスコード、HTTP Header, Content-Typeなどの値にアクセスしてみます。 PS C:\> $response.StatusCode 200 #br PS C:\> $response.Headers Key Value --- ----- Transfer-Encoding chunked Connection keep-alive Vary Accept-Encoding X-Frame-Options SAMEORIGIN,SAMEORIGIN X-XSS-Protection 1; mode=block X-Content-Type-Options nosniff X-Request-Id 5b9c9409-9b8e-4f24-831d-34259579d465 X-Runtime 0.005382 Strict-Transport-Security max-age=31536000 Expect-CT max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" CF-RAY 4373999e8fe994ab-NRT Cache-Control max-age=0, private, must-revalidate Content-Type application/json; charset=utf-8 Date Sun, 08 Jul 2018 15:31:50 GMT ETag W/"e0891e924652dfba47cf1f78961dc5a2" Set-Cookie __cfduid=d7681934404ed203d1f9594b66aae522b1531063910; expires=Mon, 08-Jul-19 15:31:50 GMT;... Server cloudflare #br PS C:\> $response.Headers.'Content-Type' application/json; charset=utf-8 + ConvertFrom-Jsonコマンドレットを使うことにより、JSON形式に変換することができます。 PS C:\> $json = ConvertFrom-Json $response.Content PS C:\> $json btcusd ltcusd ltcbtc ethusd ethbtc etcbtc etcusd rrtusd rrtbtc zecusd zecbtc <省略> * Webの応答を読み取っています。(Waiting for response)を非表示にする方法 [#ve7dc280] 上記のコマンドレットを実行すると、APIサーバとのやり取りのプログレスメッセージが表示されます。~ #ref(03.png) これを非表示にしたい場合は、以下のようにしてください。 非表示にするには、$ProgressPreferenceにSilentlyContinueを設定します。~ 変更前は以下のように Continue が設定されています。 PS C:\> $ProgressPreference Continue 非表示にするには、以下のように変更します。 PS C:\> $ProgressPreference = "SilentlyContinue" 以上、PowerShellを使って、Bitfinexのsymbols APIを呼び出す方法でした。 #htmlinsert(cc-btm.html)