如何通过Google财经等API获取货币汇率?

现在,我find了Google Finance API并开始浏览,但是我发现了很多关于投资组合,交易,头寸和其他我一无所知的信息。

我在看错文档吗? 我需要做什么来获得GF的汇率? 这甚至有可能吗?

编辑

使事情更清楚一点。 我对技术不感兴趣,也不需要任何代码。

感谢您的答复。

对于这里的后代,他们还有其他可能的答案:

  1. 雅虎财务API 已停产2017-11-06

    自2017-11-06起停止发布信息

    我们注意到,这项服务被用来违反雅虎服务条款。 因此,该服务正在中断。 对于所有未来的市场和股票数据研究,请参阅finance.yahoo.com。

    要求: http : //finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
    这个CSV被一个名为Curry的jQuery插件使用。 咖喱已经(2017-08-29)转而使用fixer.io,而不是由于稳定性问题。 如果您不仅仅需要CSV,可能会有用。

  2. ( 感谢Keyo ) 雅虎查询语言可以让你一次以XML或JSON获得一大堆货币。 数据更新由第二个(而欧洲中央银行有一天的数据),并在周末停止。 不需要任何types的注册。

    http://query.yahooapis.com/v1/public/yql?q=从yahoo.finance.xchange中select*(USDEUR,USDJPY,USDBGN,USDCZK,USDDKK,; USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD “USDBRL”“USDCAD”“USDCNY”“USDHKD”“USDIDR”“USDILS”“USDINR”“USDKRW”“USDMXN”“USDMYR”“USDNZD”“USDPHP” “USDSGD”,“USDTHB”,“USDZAR”,“USDISK”)&env = store://datatables.org/alltableswithkeys

    以下是YQL查询生成器,您可以在其中testing查询并复制url:

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

  3. 开源汇率API

    免费供个人使用 (每月1000次点击)
    免费账户不允许更改“基数”(来自“USD”)
    需要注册。
    请求: http : //openexchangerates.org/latest.json
    响应:

    { "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 ... } } 
  4. currencylayer API

    免费计划每月1000次点击
    需要注册。
    文档: currencylayer.com/documentation

    JSON响应:

     { [...] "timestamp": 1436284516, "source": "USD", "quotes": { "USDAUD": 1.345352401, "USDCAD": 1.27373397, "USDCHF": 0.947845302, "USDEUR": 0.91313905, "USDGBP": 0.647603397, // 168 world currencies } } 
  5. 欧洲央行饲料

    文档: http : //www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
    请求: http : //www.ecb.int/stats/eurofxref/eurofxref-daily.xml

    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> 
  6. Fixer.io API(欧洲中央银行数据)

    网站: http : //fixer.io/
    示例请求: http : //api.fixer.io/latest?base = USD

  7. 目前不可用:Google汇率查询(已parsing)请求: http ://rate-exchange.appspot.com/currency?from=USD&to= EUR
    响应:

     {"to": "EUR", "rate": 0.76911244400000001, "from": "USD"} 

    这是另一个基于Google API的JSON(P)API(来源: 此评论 ):
    http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1

    Ryan原始回答 。

雅虎有一个YQLfunction,可以一次以XML或JSON格式获取大量货币。 我注意到,欧洲央行有一天的数据,并在周末停止的数据是最新的。

http://query.yahooapis.com/v1/public/yql?q=从yahoo.finance.xchange中select*(USDEUR,USDJPY,USDBGN,USDCZK,USDDKK,; USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD USD “USDBRL”“USDCAD”“USDCNY”“USDHKD”“USDIDR”“USDILS”“USDINR”“USDKRW”“USDMXN”“USDMYR”“USDNZD”“USDPHP” “USDSGD”,“USDTHB”,“USDZAR”,“USDISK”)&env = store://datatables.org/alltableswithkeys

这里是他们的查询生成器,在那里你可以testing一个查询并复制url:

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

欧洲央行(ECB)也拥有我所知道的最可靠的免费饲料。 它包含大约28种货币,每天至less更新一次。

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

有关更多格式和工具,请参阅ECB参考页面: http : //www.ecb.int/stats/exchange/eurofxref/html/index.en.html

我从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); ?> 

如果您需要免费且简单的API将一种货币转换为另一种货币,请尝试使用free.currencyconverterapi.com 。

免责声明,我是网站的作者,我用它来为我的其他网站之一。

该服务甚至可以用于商业应用,但不提供保修。 出于性能原因,这些值只会每30分钟更新一次。

示例转化url是: http ://free.currencyconverterapi.com/api/v3/convert?q=EUR_PHP&compact=ultra,它将返回json格式的值,例如{“EUR_PHP”:60.849184}

以下是一些使用PHP示例的交换API。

[ 开放汇率API ]

每个月免费提供1,000个请求。 您必须注册并获取应用程序ID。 基本货币美元为免费账户。 检查支持的货币和文件 。

 // 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,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日元

如果您正在寻找基于ruby的解决scheme,我build议使用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})" 

这里是一个简单的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/>'; ?> 

谷歌的货币汇率不正确谷歌本身说==>谷歌不能保证计算器使用的汇率的准确性。 在进行任何可能受汇率变化影响的交易之前,您应该确认当前汇率。 花旗银行提供的外汇汇率在许可证下显示。 价格仅供参考,如有更改,恕不另行通知。 实际交易的价格可能会有所不同,花旗银行也不会提供任何显示的交易。

你可以试试geoplugin

除了由IP完成的地理定位(但IP是提供商IP,因此不太准确),它们还返回货币并具有货币转换器:参见示例。

他们已经更新了111种货币。

对于所有寻找货币转换暗示的新手,请看这个链接。 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);