LoginSignup
3
4

More than 5 years have passed since last update.

Google Apps Script×FixerAPIで外国為替レートを取得する

Last updated at Posted at 2019-01-04

海外旅行での支払い記録ツールを作ろうと思い、GASを使いFixer.ioから外国為替レートを取得してみました。

Fixer.ioとは

世界中の通貨の交換レートを取得・提供するサービスです。

データは毎分15以上のデータソースから取得され、ビットコイン・金・銀を含む170の通貨の交換レートが配信されています。

FAQ - Fixer

無料アカウントでは対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とか)。
マイナー通貨のレートを大まかに知りたい場合に便利。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4