[FileMaker] 為替レートを API で取得する
環境:macOS Catalina Version 10.15.6(英語環境)・FileMaker Pro 18 Advanced
私の確定申告は為替レートの計算が必要になる。
いつも為替レートは以下のサイトで調べ、計算していた。日付を指定できるので過去の為替レートも確認でき、意外と過去分を調べられるサイトは少ないので重宝していた。
Currency Converter | Foreign Exchange Rates | OANDA
https://www1.oanda.com/currency/converter/
しかしもっと簡単に為替レートを調べ、計算したくなった。私は FileMaker で確定申告用のデータをまとめることが多いので、FileMaker 上で為替レートが取得、計算できたら楽だ。
最初は Web ビューアで OANDA のサイトを表示し、そこで入力およびデータの取得を試みようとしたが、よくよく考えると為替レートのようなものは API で取得できるはず。ググってみたところ、無料で登録もなしに簡単に使える API を見つけた。
Foreign exchange rates API with currency conversion
https://exchangeratesapi.io/
GitHub – exchangeratesapi/exchangeratesapi: Exchange Rates API
https://github.com/exchangeratesapi/exchangeratesapi
まずはブラウザでいろいろ取得して遊んでみた。設定は以下のようにする。
・ベースとなる URL :https://api.exchangeratesapi.io/
・最新の情報:latest
・日付指定:[YYYY-MM-DD]
例:2021-02-12
・日付範囲指定:history?start_at=[YYYY-MM-DD]&end_at=[YYYY-MM-DD]
例:history?start_at=2018-01-01&end_at=2018-09-01
・ベースとなる通貨:base=[通貨略号]
例:base=USD
・対象通貨:symbols=[通貨略号]
例:base=JPY、base=USD,GBP(複数指定可)
ベースとなる URL、対象の期間に続けて、ベースとなる通貨や対象通貨を指定していく。オプションの指定は最初の期間の後ろは ?、それ以降は & でつなげる。
具体的には以下のようになる。
最新の米ドルを日本円に計算
https://api.exchangeratesapi.io/latest?base=USD&symbols=JPY
→ {"rates":{"JPY":105.2887387758},"base":"USD","date":"2021-02-19"}
2021 年1月8日の米ドルを日本円に計算
https://api.exchangeratesapi.io/2021-01-08?base=USD&symbols=JPY
→ {"rates":{"JPY":103.8857142857},"base":"USD","date":"2021-01-08"}
2020 年6月8日から 2020 年6月 12 日の米ドルを日本円および英ポンドに計算
https://api.exchangeratesapi.io/history?start_at=2020-06-08&end_at=2020-06-12&base=USD&symbols=JPY,GBP
→ {"rates":{"2020-06-12":{"JPY":107.2717622081,"GBP":0.7931086341},"2020-06-10":{"JPY":107.3934065934,"GBP":0.7820923077},"2020-06-09":{"JPY":108.1459181866,"GBP":0.789091553},"2020-06-11":{"JPY":107.0849488897,"GBP":0.7901392316},"2020-06-08":{"JPY":109.3575542756,"GBP":0.7901905184}},"start_at":"2020-06-08","base":"USD","end_at":"2020-06-12"}
私が確定申告で使うのは、指定日の米ドルを日本円に計算することである。これを FileMaker に実装してみよう。
Table テーブルの Date フィールドに入力された日付に対して、米ドルを日本円に計算した値を API で取得し、ExchangeRate フィールドに格納するとする。
以下のようなスクリプトになる。
1Insert from URL [ Select ; With dialog: Off ; Target: $url ; "https://api.exchangeratesapi.io/" & Table::Date & "?base=USD&symbols=JPY" ]
2Set Variable [ $apiresult ; Value: JSONGetElement ( $url ; "rates" ) ]
3Set Field [ Table::ExchangeRate ; Middle ( $apiresult ; Position ( $apiresult ; ":" ; 1 ; 1 ) + 1 ; Length ( $apiresult - 1 ) ) ]
参考:
JSON Currency Exchange Rates – FileMakerHacks
https://filemakerhacks.com/2020/08/25/json-currency-exchange-rates/
FileMaker 16 の新機能 「JSON関数」 | イエスウィキャンのファイルメーカー情報
https://ywc.com/filemaker/?p=3908