PHPプログラマーの松永です。
今回は、為替レートを取得することができるAPIを提供しているOpen Exchange Ratesを使用し、「$1を円に変換した価格」を取得する実装方法をPHPを使用して紹介します。
目次
Open Exchange Ratesとは
Open Exchange Ratesは、世界各国の為替レートを取得することができるAPIを提供しているサービスです。
APIの使用には、無料プランと有料プランがあり、今回は無料プランを使用しています。
無料プランの場合は下記の制限がありますので、リアルタイムを重視する方はご注意ください。
1時間ごとの更新(基本通貨USDを使用)と最大1,000リクエスト/月
では早速、為替レートを取得するための実装を見ていきましょう。
アカウントの作成
- https://openexchangerates.org/にアクセスし、sign upをクリックします。
- 無料プランがないように見えますが、上部にテキストリンクがあり、そこからアカウント登録ができます。
- 必要情報を入力し、アカウント登録します。
アカウントの作成は以上です。
アプリIDの確認
APIを使用するためには、アプリIDが必要になりますので、まずはアプリIDを確認します。
アカウントの作成直後にOpen Exchange Ratesから送信されるメールにアプリIDは記載されていますが、今回は管理画面で確認していきます。
- ログイン後のページ最下部にある
Grab your App ID
をクリックすることでアプリIDを確認することができます。 Grab your App ID
をクリックすると、下記キャプチャの画面が表示されますので、赤枠内に記載されているアプリIDをメモしておきます。このアプリIDを使用し、APIへアクセスします。
アプリIDの確認は以上です。
PHP
では実際にPHPを使用して「$1を円に変換した価格」を取得してみます。
※データは都度変化しています。そのため、下記に記載されているデータは時間が経過するにつれ古くなり、正確ではないデータになりますのでご注意ください。
/**
* データ取得するURL設定
*/
$appId = 'ここにアプリIDを記述してください';
$openExchangeRatesUrl = 'https://openexchangerates.org/api/latest.json?app_id=' . $appId;
/**
* データ取得
*/
$crulHandle = curl_init(); // cURLセッションの初期化
$options = [
CURLOPT_URL => $openExchangeRatesUrl,
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true
];
curl_setopt_array($crulHandle, $options);
$results = curl_exec($crulHandle);
$resultsData = json_decode($results);
$resultsData = get_object_vars($resultsData);
$resultsData = get_object_vars($resultsData['rates']);
$jpy = $resultsData['JPY'];
curl_close($crulHandle); // cURLセッションの終了
/**
* $1を円に変換した価格
*/
var_dump($jpy); // float(106.525)
float(106.525)
が返ってきました。
この記事を書いている時点での$1は106.525円ということになります。
106.525
の小数点以下の取り扱いも実装者側で決めることができ、とても柔軟に使用することができます。
今回は「円」についてのみ取得しましたが、$resultsData['JPY']
の$resultsData
をvar_dumpしてみると世界中の為替レートが取得できています。
データ数が多いため、全データを記載することはできないのですが、170カ国以上のデータが含まれています。
array(171) {
...
...
["JPY"]=> float(106.525)
...
...
["USD"]=> int(1)
...
...
}
以上でございます。
まとめ
取得したデータは、DBやCSVなどに保持しておくと便利です。
保持し、次回の取得までにいつでも呼び出せるようにしておくことで、無料プランの制限内で最大数取得できると思います。
「$1と円に変換したい」という方の参考になれば幸いです。