#author("2018-05-01T17:13:24+09:00","","") #navi(../) * PowerShellでbitFlyerの板情報を取得・v(PowerShell) [#n07461de] &color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。}; ---- PowerShellを使ってbitFlyerの[[板情報>https://lightning.bitflyer.jp/docs]]APIの使用例を以下に記します。 #contents #htmlinsert(cc-top.html) //* 関連記事 * 板情報APIの仕様など [#a8424437] HTTP Public APIなのでbitFlyerに取引口座を開設していなくても使用することができます。 板情報のAPI仕様(bitFlyer APIページから抜粋) ~ リクエスト GET /v1/getboard GET /v1/board クエリパラメータ product_code: マーケットの一覧で取得できる product_code または alias のいずれかを指定してください。 省略した場合の値は BTC_JPY です。 レスポンス { "mid_price": 33320, "bids": [ { "price": 30000, "size": 0.1 }, { "price": 25570, "size": 3 } ], "asks": [ { "price": 36640, "size": 5 }, { "price": 36700, "size": 1.2 } ] } * ブラウザで板情報(getboard)を取得する [#y48bf028] GETなのでブラウザで板情報を取得することができます。~ 以下のようなURLになります。~ https://api.bitflyer.jp/v1/getboard * ブラウザで板情報APIにアクセスした結果 [#e647a6dd] 以下ブラウザから上記URLにアクセスしたときの出力です。 FirefoxではJSONが整形され表示されています。~ 見やすいですね。~ (生データをクリックすると上記同様にJSON形式の返却された文字列が表示されます。) #ref(01.png) #ref(02.png) * Invoke-RestMethodコマンドレットでCoincheckの板情報を取得する [#labd7f4b] +板情報を取得するURL(API)を設定します。 PS C:\> $board_api = "https://api.bitflyer.jp/v1/getboard" +Invoke-RestMethodコマンドレットを使用し、返却された情報を$board変数に代入します。 $board = Invoke-RestMethod -UseBasicParsing -Uri $board_api +取得した板情報を表示しています。 PS C:\> $board mid_price bids --------- ---- 985268.0 {@{price=985140.0; size=0.061}, @{price=984792.0; size=0.01}, @{price=984787.0; size=0.01}, @{price=984777.0; siz... +取得したmid_priceとasks, bidsの取得件数を表示してみます。 PS C:\> $board.mid_price 985268.0 PS C:\> $board.asks.Count 2118 PS C:\> $board.bids.Count 2869 +とても件数が多いので、asks, bidsの先頭から10件表示してみます。 PS C:\> $board.asks | % { "$($_.price) : $($_.size)" } | Select-Object -First 10 985396.0 : 2.0171 985400.0 : 0.056 985499.0 : 0.0199 985500.0 : 11.885 985574.0 : 0.003 985589.0 : 0.01 985595.0 : 1.0 985690.0 : 1.2 985901.0 : 0.02 985999.0 : 0.50000013 #br PS C:\> $board.bids | % { "$($_.price) : $($_.size)" } | Select-Object -First 10 985140.0 : 0.061 984792.0 : 0.01 984787.0 : 0.01 984777.0 : 0.01 984771.0 : 0.00253457 984454.0 : 0.48 984453.0 : 2.67272649 984452.0 : 0.6034 984451.0 : 0.039 984382.0 : 0.01000004 *HTTPステータスなどを一緒に取得したい場合 † [#o02ce8ab] 上記では、Invoke-RestMethodにてJSONをPowerShellで扱いやすい状態に変換してくれます。 しかし、Webサーバから返却された値を変換せず、取得後JSONを別のコマンドレットで変換する操作手順を以下に記します。 + 板情報を取得するURLを設定します。 PS C:\> $board_api = "https://api.bitflyer.jp/v1/getboard" + Invoke-WebRequestコマンドレットでサーバからのレスポンスを$resに格納します。 PS C:\> $res = Invoke-WebRequest -UseBasicParsing -Uri $board_api + 取得したレスポンスは以下の通りです。 PS C:\> $res StatusCode : 200 StatusDescription : OK Content : {"mid_price":984918.0,"bids":[{"price":984788.0,"size":0.039},{"price":984751.0,"size":0.01},{"price":9846 51.0,"size":0.23050078},{"price":984650.0,"size":0.50000013},{"price":984649.0,"size":1.411689... RawContent : HTTP/1.1 200 OK Transfer-Encoding: chunked Connection: keep-alive Pragma: no-cache Request-Context: appId=cid-v1:e4fbc941-a2df-48ac-bbac-f2180e904002 X-Content-Type-Options: nosniff X-XSS-Protec... Forms : Headers : {[Transfer-Encoding, chunked], [Connection, keep-alive], [Pragma, no-cache], [Request-Context, appId=cid-v 1:e4fbc941-a2df-48ac-bbac-f2180e904002]...} Images : {} InputFields : {} Links : {} ParsedHtml : RawContentLength : 158809 +HTTPステイタスを取得しています。 PS C:\> $res.StatusCode 200 +Contentに取得した情報が格納されています。 PS C:\> $json = ($res.Content | ConvertFrom-Json) PS C:\> $json mid_price bids --------- ---- 984918.0 {@{price=984788.0; size=0.039}, @{price=984751.0; size=0.01}, @{price=984651.0; size=0.23050078}, @{price=984650.... PS C:\> $json.mid_price 984918.0 PS C:\> $json.asks[0] price size ----- ---- 985049.0 0.68455953 以上、PowerShellを使って、bitFlyerの板情報を取得・getboardからの返却値を表示する方法でした。 #htmlinsert(cc-btm.html)