Yahoo! financeのAPIを叩いて、株価を入手する
https://query1.finance.yahoo.com/v8/finance/chart/●●●●.T
●●●●に株式のコード番号を入力する
トヨタ自動車であれば "7203"
.Tとは東京市場ということみたいです。
作成したURLを叩くと、文字列が生成される。
このうちの株価をGASで入手する。
function getPrice() {
var regularMarketPrice = getRegularMarketPrice();
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
sheet.getRange('B1').setValues([[regularMarketPrice
['chart']['result'][0]['meta']['regularMarketPrice']]]);
}
function getRegularMarketPrice() {
var ticker = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1').
getRange('B2').getValue();
var url = 'https://query1.finance.yahoo.com/v8/finance/chart/' + ticker +'.T';
var response = UrlFetchApp.fetch(url);
var json = response.getContentText();
return JSON.parse(json);
}
手こずったのが、jsonの構造について。
8行目に出てくる、配列について戸惑った。
https://query1.finance.yahoo.com/v8/finance/chart/7203.T
を叩くと
と続く配列がかえって来るのだが、{で括られているところは['chart']と重ねて指定し、
次に、[で括られているのでその中の一番目ということで[0]で指定。
{で括らているので['meta']で指定し、最後に取得したいオブジェクトを指定した。
ここでは、'B2'で銘柄のコード番号を指定している。
この記事が気に入ったらサポートをしてみませんか?