Como posso obter taxas de câmbio através de uma API como o Google Finance? [fechado]
agora, eu encontrei a API do Google Finance e comecei a ver isso, mas encontrei muita informação sobre portfólios, transacções, posições e outras coisas de que não sei nada.
Estou a olhar para os médicos errados? O que eu preciso fazer para obter uma alimentação de taxas de câmbio do GF? Isto é possível?editar
Para tornar as coisas um pouco mais claras. Não estou interessado em coisas técnicas nem em códigos.10 answers
Currencyconverterapi livre:
- taxas actualizadas a cada 30 minutos
- não é necessária nenhuma conta
Um URL de conversão de amostras é: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y
Para a posteridade, eles estão junto com outras possíveis respostas:
-
a API do Yahoo financedescontinuou 2017-11-06Descontinuado em 2017-11-06 com mensagem
Chegou ao nosso conhecimento que este serviço está a ser utilizado em violação dos Termos de Serviço do Yahoo. Como tal, o serviço está a ser descontinuado. Para todos os futuros mercados e acções investigação de dados, por favor consulte finance.yahoo.com.
Pedido: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
Este CSV estava a ser usado por um plugin jQuery chamado Curry. Caril tem desde então (2017-08-29) transferido para usar fixer.io em vez disso, devido a problemas de estabilidade. Pode ser útil se precisar de mais do que um CSV. -
(graças a Keyo) a linguagem de pesquisa do Yahoo permite-lhe obter um monte de moedas ao mesmo tempo em XML ou JSON. Os dados atualizam-se no segundo (enquanto o Banco Central Europeu tem dados do dia anterior), e param no fim-de-semana. Não requer nenhum tipo de inscrição.
Aqui está o
construtor de pesquisas YQL, onde poderá testar uma pesquisa e copiar o url: (já não está disponível)
-
Taxas de câmbio de código aberto API
Grátis para uso pessoal (1000 visitas por mês)
Mudar a "base" (de "USD") Não é permitido gratuitamente conta
Requer registo.
Pedido: http://openexchangerates.org/latest.json
Resposta:{ "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 ... } }
-
Currencylayer API
Plano gratuito {[19] } para 1.000 visualizações mensais
A alteração de "fonte" (de "USD") não é permitida em conta gratuita
Requer registo.
Documentação: currencylayer.com/documentation
Resposta JSON:{ [...] "timestamp": 1436284516, "source": "USD", "quotes": { "USDAUD": 1.345352401, "USDCAD": 1.27373397, "USDCHF": 0.947845302, "USDEUR": 0.91313905, "USDGBP": 0.647603397, // 168 world currencies } }
-
Fixer.io API (Banco Central Europeu) data)
Plano gratuito para 1000 visualizações mensais A alteração de " fonte "(a partir de "USD") não é permitida em conta gratuita Requer registo.Este ponto final da API está desactualizado e deixará de funcionar a 1 de junho de 2018. Para mais informações, visite: https://github.com/fixerAPI/fixer#readme)
Sítio web: http://fixer.io/
Pedido de exemplo : http://api.fixer.io/latest?base=USD
Só recolhe um valor por cada dia -
Banco Central Europeu Feed
Docs: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
Pedido: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Resposta 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>
-
pesquisa da taxa de câmbio do Google (processada)actualmente indisponível:Pedido: http://rate-exchange.appspot.com/currency?from=USD&to=EUR
Resposta:{"to": "EUR", "rate": 0.76911244400000001, "from": "USD"}
Aqui está outra API JSON (P) baseada na API do Google (fonte: este comentário):
http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1Resposta Original por Ryan.
O Banco Central Europeu (BCE) também tem a informação gratuita mais fiável que conheço. Contém cerca de 28 moedas e é actualizado pelo menos diariamente.
Http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Para mais formatos e ferramentas, ver a página de referência do BCE: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html
O Yahoo tem uma funcionalidade YQL para obter um monte de moedas ao mesmo tempo em XML ou JSON. Notei que os dados estão atualizados no minuto em que o BCE tem dados do dia anterior, e para no fim de semana.
Aqui está o seu construtor de consultas, onde você pode testar uma consulta e copiar o url:
Se você precisa de uma API livre e simples para converter uma moeda para outra, tente free.currencyconverterapi.com.
Disclaimer, eu sou o autor do site e eu usá-lo para um dos meus outros sites.
O serviço é livre de usar mesmo para aplicações comerciais, mas não oferece nenhuma garantia. Por razões de desempenho, os valores só são atualizados a cada hora.
Um URL de conversão de amostras é: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_PHP&compact=ultra que devolverá um valor json formatado, por exemplo {"EUR_PHP": 60.849184}
<?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);
?>
[ taxas de câmbio abertas API ]
Fornece 1.000 pedidos por mês grátis. Você deve se registrar e pegar o ID da aplicação. A moeda de base USD por conta gratuita. Verifique a documentação das moedas suportadas e .
// 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 USD = 18039.09015 JPY
[ API de camada de moeda ]
Fornece 1.000 pedidos por mês grátis. Você deve se registrar e pegar o
Podes tentar geoplugin
Ao lado da geolocalização feita pelo IP (mas o IP é o IP fornecedor, por isso não é tão preciso), eles também devolvem moedas e têm um conversor de moeda: ver exemplos.
Têm 111 moedas actualizadas.
Se está à procura de uma solução baseada em ruby para este problema, recomendo a utilização do método da Calculadora do Google uma solução semelhante à seguinte: 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})"
Aqui está um script PHP simples que recebe a taxa de câmbio entre GBP e USD
<?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/>';
?>
As taxas de câmbio do Google não são corretas o próprio google diz = = > O Google não pode garantir a precisão das taxas de câmbio utilizadas pela calculadora. Deverá confirmar as taxas actuais antes de efectuar quaisquer transacções que possam ser afectadas por alterações nas taxas de câmbio. As taxas de câmbio fornecidas pelo Citibank N. A. são apresentadas sob licença. As tarifas são apenas para fins informativos e são sujeito a alterações sem aviso prévio. As taxas para as transações efetivas podem variar e o Citibank não está se oferecendo para entrar em qualquer transação a qualquer taxa exibida.
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);