海外旅行での支払い記録ツールを作ろうと思い、GASを使いFixer.ioから外国為替レートを取得してみました。
Fixer.ioとは
世界中の通貨の交換レートを取得・提供するサービスです。
データは毎分15以上のデータソースから取得され、ビットコイン・金・銀を含む170の通貨の交換レートが配信されています。
無料アカウントでは対EURレートのみ利用できます。
今回は大まかな値でいいため、(USD vs EUR)/(JPY vs EUR)のように計算して擬似的に対JPYのレートを取得してみました。
必要なもの
- Fixerアカウント
- Googleアカウント
サンプルコード
通貨レートの取得(対ユーロ)
// 指定した通貨の対EURレートをJSONで取得する
function getJSON(currency) {
const endpoint = 'http://data.fixer.io/api/latest',
api_key = API_KEY,
symbols = currency+',JPY'; //symbolsを指定しない場合、全通貨のデータを取得
const url = endpoint+'?access_key='+api_key+'&symbols='+symbols;
const json = UrlFetchApp.fetch(url,{
'Content-Type': 'application/json; charset=UTF-8',
'method': 'get'
});
return json;
}
対円レートへの換算
// fixer APIから取得した対EURレートから対JPYレートを計算する
function getJpyRate(currency) {
const json = getJSON(currency);
const rates = JSON.parse(json).rates;
if (rates[currency] > 0) {
const rate_JPY = rates.JPY / rates[currency];
return rate_JPY;
}
return
}
まとめ
通貨レートはカード会社や証券会社なども配信していますが
- マイナー通貨まで網羅している
- 口座開設など必要なく簡単に実装できる
といった点がFixerのメリットに思います。
反面、無料プランでは
- 呼び出し回数制限が月間1000回
- 更新が1時間毎
- 対EURレートしか取得できない
といった制限があり、更新頻度や正確性が必要な用途では使えなさそうです(FXとか)。
マイナー通貨のレートを大まかに知りたい場合に便利。