Obtendo dados de conversão de moeda do Yahooapis agora que o iGoogle desapareceu
Até ontem, eu tinha um site / aplicativo de orçamento perfeito para trabalhar com o iGoogle.
Através do PHP, usando a seguinte pequena linha
file_get_contents('http://www.google.com/ig/calculator?hl=en&q=1usd=?eur');
e semelhante, consegui tudo o que precisava.
A partir de hoje, isso não está mais funcionando. Quando analisei o problema, o que aconteceu foi que o Google se aposentou do iGoogle. Vadio!
De qualquer forma, eu estava procurando em outro lugar, mas não consigo encontrar nada que atenda às minhas necessidades. Eu adoraria simplesmente consertá-lo e colocá-lo novamente em funcionamento simplesmente trocando essa linha de código (ou seja, mudando o endereço do Google com o endereço de outra API de moeda disponível), mas parece que nenhum deles funciona.
A API do rate-exchange.appspot.com parece que poderia ser um analógico do iGoogle, mas, infelizmente, nunca funciona. Eu continuo recebendo uma mensagem "Over Quota".
(Aqui vem uma pergunta inicial: alguém sabe de uma API simples, confiável, do tipo iGoogle?)
Então eu acho que a coisa natural seria o recurso Yahoo YQL (pelo menos eu suponho que seja tão confiável).
As consultas do Yahoo são assim:
http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange where pair in ("USDEUR", "USDJPY", "USDBGN")&env=store://datatables.org/alltableswithkeys
O que eu realmente não consigo descobrir é como analisar esses dados. Produz um XML.
O que eu costumava ter é isso:
function exchange($inputAmount,$inputCurrency,$outputCurrency) {
$exchange = file_get_contents('http://www.google.com/ig/calculator?hl=en&q='.$inputAmount.$inputCurrency.'=?'.$outputCurrency);
$exchange = explode('"', $exchange);
$exchange = explode('.', $exchange['3']);
$exchange[0] = str_replace(" ", "",preg_replace('/\D/', '', $exchange[0]));
if(isset($exchange[1])){
$exchange[1] = str_replace(" ", "",preg_replace('/\D/', '', $exchange[1]));
$exchange = $exchange[0].".".$exchange[1];
} else{
$exchange = $exchange[0];
}
return $exchange;
}
Assim, o usuário conseguiu obter a taxa de câmbio de uma moeda de entrada, como "USD", e uma moeda de saída, como "EUR", em uma quantia específica de dinheiro. Como eu disse, isso estava funcionando até ontem à noite.
Alguma ideia?