#author("2018-05-17T20:07:06+09:00","","")
#author("2018-05-17T20:23:55+09:00","","")
#navi(../)
* PowerShellでbitFlyerのマーケットの一覧を取得・getmarkets [#ke3bc71f]
&color(red){当サイトに記載されている会社名、製品名などは一般に各社または団体の商標または登録商標です。&br;当サイトの資料により直接的および間接的障害が生じても一切責任を負いません。&br;あらかじめご了承ください。};
----

PowerShellを使ってbitFlyerの[[マーケットの一覧>https://lightning.bitflyer.jp/docs]]APIの使用例を以下に記します。

#contents
#htmlinsert(bitflyer_full.html)

* 関連記事 [#vcaccade]
-[[板情報(PowerShell)>API/bitFlyer/板情報の取得(PowerShell)]]
-[[マーケットの一覧(PowerShell)>API/bitFlyer/マーケットの一覧の取得(PowerShell)]]
-[[Ticker(PowerShell)>API/bitFlyer/Tickerの取得(PowerShell)]]



* マーケットの一覧APIの仕様など [#l438af62]
HTTP Public APIなのでbitFlyerに取引口座を開設していなくても使用することができます。

マーケットの一覧API仕様(bitFlyer APIページから抜粋) ~

-マーケットの一覧

--リクエスト
 GET /v1/getmarkets
 GET /v1/markets
--レスポンス
 [
   { "product_code": "BTC_JPY" },
   { "product_code": "FX_BTC_JPY" },
   { "product_code": "ETH_BTC" },
   {
     "product_code": "BTCJPY28APR2017",
     "alias": "BTCJPY_MAT1WK"
   },
   {
     "product_code": "BTCJPY05MAY2017",
     "alias": "BTCJPY_MAT2WK"
   }
 ]
alias: 以下の呼出で product_code を指定するときに、代わりに使用できます。

* ブラウザでマーケットの一覧(getmarkets)を取得する [#af13928a]
GETなのでブラウザでマーケットの一覧を取得することができます。~
以下のようなURLになります。~
https://api.bitflyer.jp/v1/getmarkets

* ブラウザでマーケットの一覧APIにアクセスした結果 [#ef984bc9]
以下ブラウザから上記URLにアクセスしたときの出力です。

FirefoxではJSONが整形され表示されています。~
見やすいですね。~
(生データをクリックすると上記同様にJSON形式の返却された文字列が表示されます。)
&ref(01.png); &ref(02.png);

* Invoke-RestMethodコマンドレットでbitFlyerのマーケットの一覧を取得する [#qb8c0162]
+マーケットの一覧を取得するURL(API)を設定します。
 PS C:\> $markets_api = "https://api.bitflyer.jp/v1/getmarkets"
+Invoke-RestMethodコマンドレットを使用し、返却された情報を$markets変数に代入します。
 $markets = Invoke-RestMethod -UseBasicParsing -Uri $markets_api
+取得したマーケットの一覧を表示しています。
 PS C:\> $markets
 
 product_code
 ------------
 BTC_JPY
 FX_BTC_JPY
 ETH_BTC
 BCH_BTC
 BTCJPY29JUN2018
 BTCJPY18MAY2018
 BTCJPY25MAY2018
+取得した$markets変数にアクセスしてみます。
 PS C:\> $markets[0]
 
 product_code
 ------------
 BTC_JPY
 
 
 PS C:\> $markets[1]
 
 product_code
 ------------
 FX_BTC_JPY
 
 
 PS C:\> $markets.Count
 7

*HTTPステータスなどを一緒に取得したい場合 [#r7661d4e]
上記では、Invoke-RestMethodにてJSONをPowerShellで扱いやすい状態に変換してくれます。
しかし、Webサーバから返却された値を変換せず、取得後JSONを別のコマンドレットで変換する操作手順を以下に記します。

+ マーケットの一覧を取得するURLを設定します。
 PS C:\> $markets_api = "https://api.bitflyer.jp/v1/getmarkets"
+ Invoke-WebRequestコマンドレットでサーバからのレスポンスを$resに格納します。
 PS C:\> $res = Invoke-WebRequest -UseBasicParsing -Uri $markets_api
+ 取得したレスポンスは以下の通りです。
 PS C:\> $res
 
 
 StatusCode        : 200
 StatusDescription : OK
 Content           : [{"product_code":"BTC_JPY"},{"product_code":"FX_BTC_JPY"},{"product_code":"ETH_BTC"},{"product_code
                     ":"BCH_BTC"},{"product_code":"BTCJPY29JUN2018","alias":"BTCJPY_MAT3M"},{"product_code":"BTCJPY18MAY
                     20...
 RawContent        : HTTP/1.1 200 OK
                     Connection: keep-alive
                     Pragma: no-cache
                     Request-Context: appId=cid-v1:e4fbc941-a2df-48ac-bbac-f2180e904002
                     X-Content-Type-Options: nosniff
                     X-XSS-Protection: 1; mode=block
                     X-Frame...
 Forms             :
 Headers           : {[Connection, keep-alive], [Pragma, no-cache], [Request-Context, appId=cid-v1:e4fbc941-a2df-48ac-bb
                     ac-f2180e904002], [X-Content-Type-Options, nosniff]...}
 Images            : {}
 InputFields       : {}
 Links             : {}
 ParsedHtml        :
 RawContentLength  : 288
+HTTPステイタスを取得しています。
 PS C:\> $res.StatusCode
 200
+Contentに取得した情報が格納されています。
 PS C:\> $json = ($res.Content | ConvertFrom-Json)
 PS C:\> $json
 
 product_code
 ------------
 BTC_JPY
 FX_BTC_JPY
 ETH_BTC
 BCH_BTC
 BTCJPY29JUN2018
 BTCJPY18MAY2018
 BTCJPY25MAY2018
以上、PowerShellを使って、bitFlyerのマーケットの一覧を取得・getmarketsからの返却値を表示する方法でした。

#htmlinsert(bitflyer_full.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS