Google FinanceなどのAPIを使用して通貨の為替レートを取得するにはどうすればよいですか?[閉まっている]


137

さて、私はGoogle Finance APIを見つけて調べ始めましたが、ポートフォリオ、トランザクション、ポジションなど、私が何も知らないことに関する多くの情報を見つけました。

私は間違ったドキュメントを見ていますか?GFから為替レートのフィードを取得するには、何をする必要がありますか?これは可能ですか?

編集

少しわかりやすくするため。技術的なことには興味がなく、コードも必要ありません。


Yahoo!を使用したphpクラスについては、stackoverflow.com / a / 21627583/592868を参照してください。ファイナンス
Felix Geenen 2014

3
@George Stockerこの質問は、元々AFAIKで廃止されたいくつかのばかげたGoogle APIについて非常に具体的でした。どういうわけか人々はそのAPIに代替を追加し始め、それは通貨交換APIに関するある種のインデックスに変わりました。当然のことながら、多数の投票とお気に入りが寄せられたため、コミュニティは有用だと感じています...
Bogdan

@ボグダン私に何をしてもらいたいですか?
ジョージストッカー2014年

4
@GeorgeStockerまあ、SOルールに違反していると思われる場合は閉じたままにしておいてもかまいませんが、削除しないでください。人々は、これがこの種のもののための良い参照であると思うようです。私の2c。
Bogdan 2014年

@GeorgeStockerそれは通貨のjavascript apiのと信じられないほど便利なためGoogleで1位です。この項目は、多くの開発者を支援するために最新の状態に保つ必要があります。これが、stackoverflowが作成された主な理由です。ルールの書簡には正解ですが、スパムや意見に基づく回答が見つからないため、このトピックを閉じるのは精神に反します。もう一度開いてください。
Jan Derk、2014

回答:


821

すべての回答ありがとうございます。

無料currencyconverterapi:

  • 30分ごとに更新されるレート
  • 無料サーバーにはAPIキーが必要になりました。

サンプルの変換URLは次のとおりです:http : //free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


ここで後世のために、それらは他の可能な答えと一緒です:

  1. YahooファイナンスAPI 2017-11-06 ###終了

メッセージ付きで2017-11-06に廃止

このサービスがYahoo利用規約に違反して使用されていることが判明しました。そのため、サービスは廃止されています。将来のすべての市場と株式データの調査については、finance.yahoo.comを参照してください。

リクエスト:http : //finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
このCSVは、[Curry] [1]というjQueryプラグインによって使用されていました。Curryは(2017-08-29)以降、安定性の問題から、代わりにfixer.ioを使用するようになりました。CSVだけではない場合に便利です。

  1. KeyoのおかげでYahooクエリ言語を使用すると、XMLまたはJSONで一度にたくさんの通貨を取得できます。データは秒単位で更新され(ヨーロッパ中央銀行には1日前のデータがあります)、週末に停止します。どんな種類のサインアップも必要としません。

[http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in( "USDEUR"、 "USDJPY"、 "USDBGN"、 "USDCZK"、 "USDDKK" 、「USDGBP」、「USDHUF」、「USDLTL」、「USDLVL」、「USDPLN」、「USDRON」、「USDSEK」、「USDCHF」、「USDNOK」、「USDHRK」、「USDRUB」、「USDTRY」、「 USDAUD "、" USDBRL "、" USDCAD "、" USDCNY "、" USDHKD "、" USDIDR "、" USDILS "、" USDINR "、" USDKRW "、" USDMXN "、" USDMYR "、" USDNZD "、" USDPHP " 、「USDSGD」、「USDTHB」、「USDZAR」、「USDISK」)&env = store://datatables.org/alltableswithkeys] [1]

こちらが YQLクエリビルダー、クエリをテストして次のURLをコピーできます:(利用不可)

http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20*%20from%20yahoo.finance.xchange%20where%20pair% 20in%20%28%22USDMXN%22%2C%20%22USDCHF%22%29

yqlコンソールは利用できなくなりました

  1. オープンソース為替レートAPI

個人使用は無料(1か月あたり1000ヒット)
「ベース」(「USD」から)の変更は無料アカウントでは許可されていません
登録が必要です。
リクエスト:http : //openexchangerates.org/latest.json
レスポンス:

   <!-- language: lang-js -->

    {
      "disclaimer": "This data is collected from various providers ...",
      "license": "all code open-source under GPL v3 ...",
      "timestamp": 1323115901,
      "base": "USD",
      "rates": {
          "AED": 3.66999725,
          "ALL": 102.09382091,
          "ANG": 1.78992886,
          // 115 more currency rates here ...
      }
    }
  1. currencylayer API

毎月250ヒットの無料プラン
「ソース」の変更(「USD」から)は無料アカウントでは許可されていません
登録が必要です。
ドキュメント:currencylayer.com/documentation

JSONレスポンス:

   <!-- language: lang-js -->

    {
      [...]
      "timestamp": 1436284516,
      "source": "USD",
      "quotes": {
          "USDAUD": 1.345352401,
          "USDCAD": 1.27373397,
          "USDCHF": 0.947845302,
          "USDEUR": 0.91313905,
          "USDGBP": 0.647603397,
          // 168 world currencies
          }
      }
  1. Fixer.io API(ヨーロッパ中央銀行データ)

毎月1,000ヒットの無料プラン
「ソース」の変更(「USD」から)は無料アカウントでは許可されていません登録が必要です。

このAPIエンドポイントは非推奨であり、2018年6月1日に動作を停止します。詳細については、https://github.com/fixerAPI/fixer#readme)をご覧ください。


ウェブサイト:http://fixer.io/
リクエストの例:[http://api.fixer.io/latest?base=USD][7]
1日に1つの値のみを収集します
  1. 欧州中央銀行フィード

ドキュメント:http : //www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
リクエスト:http : //www.ecb.int/stats/eurofxref/eurofxref-daily.xml

XML応答:

   <!-- language: lang-xml -->

    <Cube>
      <Cube time="2015-07-07">
      <Cube currency="USD" rate="1.0931"/>
      <Cube currency="JPY" rate="133.88"/>
      <Cube currency="BGN" rate="1.9558"/>
      <Cube currency="CZK" rate="27.100"/>
    </Cube>
  1. ### exchangeratesapi.io ###ウェブサイトによると:

    為替レートAPIは、欧州中央銀行が発行する現在および過去の為替レートの無料サービスです。
    このサービスはfixer.ioと互換性があり、本当に使いやすいです。APIキーは必要ありません。例(これはCURLを使用していますが、お気に入りの要求ツールを使用できます):

    > curl https://api.exchangeratesapi.io/latest?base=GBP&symbols=USD
    {"base":"GBP","rates":{"USD":1.264494191},"date":"2019-05-29"}
    
  2. ### CurrencyApi.net ### 月額1250ヒットの無料プラン
    基本通貨は無料アカウントでUSDに設定されています
    登録が必要です。
    ドキュメント:currencyapi.net/documentation

    JSONレスポンス:

    {
      "valid": true,
      "timestamp": 1567957373,
      "base": "USD",
      "rates": {
              "AED": 3.673042,
              "AFN": 77.529504,
              "ALL": 109.410403,
              // 165 currencies + some cryptos
          }
      }
    
  3. ### LabStackからの通貨###

ウェブサイト:https : //labstack.com/currency
ドキュメント:https : //labstack.com/docs/api/currency/convert
価格設定:https : //labstack.com/pricing
リクエスト:https : //currency.labstack.com / api / v1 / convert / 1 / USD / INR
Response:

```js
 {
   "time": "2019-10-09T21:15:00Z",
   "amount": 71.1488
 }
 ```

[1]:http://query.yahooapis.com/v1/public/yql?q=select * yahoo.finance.xchangeから場所( "USDEUR"、 "USDJPY"、 "USDBGN"、 "USDCZK"に対「USDDKK」、「USDGBP」、「USDHUF」、「USDLTL」、「USDLVL」、「USDPLN」、「USDRON」、「USDSEK」、「USDCHF」、「USDNOK」、「USDHRK」、「USDRUB」、「USDTRY "、" USDAUD "、" USDBRL "、" USDCAD "、" USDCNY "、" USDHKD "、" USDIDR "、" USDILS "、" USDINR "、" USDKRW "、" USDMXN "、" USDMYR "、" USDNZD "、 「USDPHP」、「USDSGD」、「USDTHB」、「USDZAR」、「USDISK」)&env = store://datatables.org/alltableswithkeys


6
これは、YahooファイナンスAPIのより役立つ説明へのリンクです。
ミランダ

4
Open Exchange RatesプロジェクトデータはGitHubから移動され(現在、利用可能なデータはありません)、openexchangerates.org経由で提供されていることにご注意ください-ありがとう!
ウィリアムジョスクロウクロフト

17
rate-exchange.appspotはもう機能しません..
letitbefornow


5
更新:YahooがこのメッセージでAPIを無効にしたIt has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.
ZenithS

66

欧州中央銀行(ECB)にも、私が知っている最も信頼できる無料のフィードがあります。約28の通貨が含まれており、少なくとも毎日更新されます。

http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

その他の形式とツールについては、ECBリファレンスページを参照してください。http//www.ecb.int/stats/exchange/eurofxref/html/index.en.html


3
あまりにも悪いfixer.ioには保証がありません。生産用ではありません。
Ben Sinclair、

2
残念ながら、週末には更新されません。
Denis

多くの外国為替取引市場は金曜日の東部標準時午後4時から日曜日の東部標準時午後5時まで閉鎖されています。もっと正確な週末料金が本当に必要な場合は、はい、別のストリームをチェックします。
Ryan

1
@ライアンしかし、すべての通貨が表示されないのはなぜですか?
Sunil Targe 2017年

4
Fixer.ioサービスは残念ながら非推奨です。ある代替互換性のある代替為替レートのAPIがありexchangeratesapi.io
madisvain

53

こんにちは@ Keyo、URLとして読み取ろうとするJavaコード内で提供されているYQLサンプルを試すと、IO例外が発生します(サーバーがHTTP応答コードを返しました:URLの400:query.yahooapis.com/v1/public/ yql?q = select * from yahoo.finance.xchange where pair in( "USDEUR")&env = store://datatables.org/alltableswithkeys)これは、このURLをブラウザにコピーするだけで機能する
Malik Firose

'public static void main(String [] args){String currencyPair = "USDEUR"; 文字列アドレス= " query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in(\" "+ currencyPair +" \ ")&env = store://datatables.org/ alltableswithkeys "; 試行{//文字列応答= URLReader.read(address); // System.out.println(response); URL url =新しいURL(アドレス); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); } catch(例外e){// TODO自動生成されたcatchブロックe.printStackTrace(); }} '
Malik Firose

こんにちは@ Keyo、YQLの特定の時間枠の高/低レートを取得する方法はありますか?
entpnomad

3
悲しいことに、Yahooは昨日警告なしにサービスを終了し、何千もの企業を危険にさらしていました。
FlorianB 2017年

このAPIは永久に無効になっているようです。
活動の削減

47

通貨を別の通貨に変換するための無料でシンプルなAPIが必要な場合は、free.currencyconverterapi.comをお試しください

免責事項、私はWebサイトの作成者であり、他のWebサイトの1つに使用しています。

このサービスは商用アプリケーションでも無料で使用できますが、保証はありません。パフォーマンス上の理由から、値は1時間ごとにのみ更新されます。

サンプルの変換URLは次のとおりです:http ://free.currencyconverterapi.com/api/v6/convert?q=EUR_PHP&compact=ultra&apiKey=sample-api-keyこれはjson形式の値を返します(例:{"EUR_PHP":60.849184})


1
ありがとう。コンバージョン率の原因は何ですか?これにより、サービスの信頼性を測定できるようになります。
s3m3n 2015

1
2017年11月に機能します。ご提供いただきありがとうございます。ただし、サイトに依存しているため、引き続き提供してください。死んだばかりのYahooファイナンスを使っていた。
調整可能

1
パワフル。作者に感謝
ジェームズオドゥロ

1
まもなくプレミアムにアップグレードされます。
ジェームズオドゥロ

1
それはもはや無料ではありません。無料はテスト/デモ用です。さらにリクエストすると400が返され、「システムがこのリクエストを無料サービスの乱用として検出しました。さらにリクエストが必要な場合は、有料サービスの使用を検討してください。currencyconverterapi.com/ pricingを確認してください。詳細。ありがとうございました。」そしてあなたのIPとAPIキーをブロックします。
Swifty

25

このコンテンツはhttp://www.scriptarticle.com/2012/05/03/get-live-currency-rates-and-currency-conversion-using-php-and-apis/から取得しました

<?php

function get_currency($from_Currency, $to_Currency, $amount) {
    $amount = urlencode($amount);
    $from_Currency = urlencode($from_Currency);
    $to_Currency = urlencode($to_Currency);

    $url = "http://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$to_Currency";

    $ch = curl_init();
    $timeout = 0;
    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt ($ch, CURLOPT_USERAGENT,
                 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $rawdata = curl_exec($ch);
    curl_close($ch);
    $data = explode('bld>', $rawdata);
    $data = explode($to_Currency, $data[1]);

    return round($data[0], 2);
}

// Call the function to get the currency converted
echo get_currency('USD', 'INR', 1);

?>

5
ループの外にあるiGoogleでは、これが最良のオプションです。以前のwww.google.com/igオプションは機能しなくなります。
raphie 2013年

1
www.google.com/financeは機能しなくなりました。2017年9月に、financeのURLがfinance.google.comに変更されました。:Dのbryanveloso.com/2017/09/14/...
jehzlau

2
Googleがfinance.google.comに移動すると、私はつまずき、カールリクエストが壊れました。これを修正するには、curlにリダイレクトに従うように要求します。curl_setopt($ curl、CURLOPT_FOLLOWLOCATION、true);
ジェイボン2017年

1
google.com/finance/converter?a=1&from=INR&to=USDを試しましたが機能しませんでした。ダイアログを開きます。
調整可能

4
www.google.com/finance/converterおよびfinance.google.com/finance/converterは使用できなくなりました。
クリスチャン

16

以下は、PHPでの交換APIの例です。

[ オープン為替レートAPI ]

1か月あたり1,000件のリクエストを無料で提供します。アプリIDを登録して取得する必要があります。無料アカウントの基本通貨USD。サポートされている通貨ドキュメントを確認してください。

// open exchange URL // valid app_id * REQUIRED *
$exchange_url = 'https://openexchangerates.org/api/latest.json';
$params = array(
    'app_id' => 'YOUR_APP_ID'
);

// make cURL request // parse JSON
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $exchange_url . '?' . http_build_query($params),
    CURLOPT_RETURNTRANSFER => true
));
$response = json_decode(curl_exec($curl));
curl_close($curl);

if (!empty($response->rates)) {
    // convert 150 USD to JPY ( Japanese Yen )
    echo $response->rates->JPY * 150;
}

150米ドル= 18039.09015円

通貨レイヤーAPI

1か月あたり1,000件のリクエストを無料で提供します。アクセスキーを登録して取得する必要があります。カスタムの基本通貨は無料アカウントでサポートされていませんドキュメントを確認してください。

$exchange_url = 'http://apilayer.net/api/live';
$params = array(
    'access_key' => 'YOUR_ACCESS_KEY',
    'source' => 'USD',
    'currencies' => 'JPY',
    'format' => 1 // 1 = JSON
);

// make cURL request // parse JSON
$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $exchange_url . '?' . http_build_query($params),
    CURLOPT_RETURNTRANSFER => true
));
$response = json_decode(curl_exec($curl));
curl_close($curl);

if (!empty($response->quotes)) {
    // convert 150 USD to JPY ( Japanese Yen )
    echo '150 USD = ' . $response->quotes->USDJPY * 150 . ' JPY';
}

150米ドル= 18036.75045円


14
割り当て量に非常に簡単に達する。推奨されない。
Ayush Goyal 2014年

7
@AyushGoyalすべての変換でAPIを使用している場合は、とにかく間違っています。1時間ごとにAPIをクエリし、現在の為替レートをデータベーステーブルに保存するようにcronjobを設定します。交換計算を行う必要がある場合は、テーブルからデータを好きなだけプルします。あなたはそのように毎月の制限に達することはありません。
tpartee 2017

1

あなたはジオプラグインを試すことができます

IPによって行われる地理位置情報のほか(ただし、IPはプロバイダーIPであるため、それほど正確ではありません)、通貨も返し、通貨コンバーターがあります。例を参照してください。

彼らは111通貨を更新しています。


0

この問題のルビベースのソリューションを探している場合は、Google電卓の方法を使用して、次のようなソリューションをお勧めします。http//j.mp/QIC564

require 'faraday'
require 'faraday_middleware'
require 'json'

# Debug: 
# require "pry"


country_code_src = "USD"
country_code_dst = "INR"
connection = Faraday.get("http://www.google.com/ig/calculator?hl=en&q=1#{country_code_src}=?#{country_code_dst}")

currency_comparison_hash = eval connection.body #Google's output is not JSON, it's a hash

dst_currency_value, *dst_currency_text = *currency_comparison_hash[:rhs].split(' ')
dst_currency_value = dst_currency_value.to_f
dst_currency_text = dst_currency_text.join(' ')

puts "#{country_code_dst} -> #{dst_currency_value} (#{dst_currency_text} to 1 #{country_code_src})"

2
iGoogleは2013年11月1日に廃止されました。このAPIは機能しなくなりました。
改訂


0

以下は、GBPとUSDの間の為替レートを取得する単純なPHPスクリプトです。

<?php
$amount = urlencode("1");
$from_GBP0 = urlencode("GBP");
$to_usd= urlencode("USD");
$Dallor = "hl=en&q=$amount$from_GBP0%3D%3F$to_usd";
$US_Rate = file_get_contents("http://google.com/ig/calculator?".$Dallor);
$US_data = explode('"', $US_Rate);
$US_data = explode(' ', $US_data['3']);
$var_USD = $US_data['0'];
echo $to_usd;
echo $var_USD;
echo '<br/>'; 
?>

Googleの通貨レートは正確ではありませんgoogle自体が言う==> Googleは、計算機で使用される為替レートの正確性を保証できません。為替レートの変動の影響を受ける可能性のある取引を行う前に、現在のレートを確認する必要があります。シティバンクNAが提供する外貨レートは、ライセンスに基づいて表示されます。料金は情報提供のみを目的としており、予告なく変更される場合があります。実際の取引のレートは異なる場合があり、シティバンクは表示されたレートでの取引の開始を提案していません。


3
iGoogleは2013年11月1日に廃止されました。このAPIは機能しなくなりました。
改訂

-1

通貨換算に関するヒントを探しているすべての初心者は、このリンクをご覧ください。Datavoila

これは、C#での自分のプロジェクトに関して多くの助けとなりました。サイトが消えた場合に備えて、以下のコードを追加します。以下のステップを自分のプロジェクトに追加してください。フォーマットについて申し訳ありません。

const string fromCurrency = "USD";
const string toCurrency = "EUR";
const double amount = 49.95;
// For other currency symbols see http://finance.yahoo.com/currency-converter/
// Clear the output editor //optional use, AFAIK
Output.Clear();

// Construct URL to query the Yahoo! Finance API
const string urlPattern = "http://finance.yahoo.com/d/quotes.csv?s={0}{1}=X&f=l1";
string url = String.Format(urlPattern, fromCurrency, toCurrency);

// Get response as string
string response = new WebClient().DownloadString(url);

// Convert string to number
double exchangeRate =
    double.Parse(response, System.Globalization.CultureInfo.InvariantCulture);

// Output the result
Output.Text = String.Format("{0} {1} = {2} {3}",
                            amount, fromCurrency,
                            amount * exchangeRate, toCurrency);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.