monedas - ¿Cómo obtengo las tasas de cambio de divisas a través de una API como Google Finance?
php conversor de moneda utilizando la api de google (10)
Ahora, encontré la API de Google Finance y comencé a revisarla, pero encontré mucha información sobre carteras, transacciones, posiciones y otras cosas de las que no sé nada.
¿Estoy mirando los documentos incorrectos? ¿Qué debo hacer para obtener un feed de los tipos de cambio de GF? ¿Esto es posible?
EDITAR
Para aclarar un poco las cosas. No estoy interesado en cosas técnicas ni quiero ningún código.
Aquí hay algunas API de intercambio con ejemplos de PHP.
[ Abrir tasa de cambio API ]
Proporciona 1,000 solicitudes por mes gratis. Debes registrarte y tomar la ID de la aplicación. La moneda base USD para la cuenta gratuita. Verifique las monedas y la documentation admitidas .
// 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
[ Currency Layer API ]
Proporciona 1,000 solicitudes por mes gratis. Debe registrarse y tomar la clave de acceso. La moneda base personalizada no es compatible con la cuenta gratuita. Verifique la documentation .
$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 USD = 18036.75045 JPY
Aquí hay un script PHP simple que obtiene la tasa de cambio entre GBP y 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/>'';
?>
Las tasas de cambio de Google no son precisas. Google mismo dice ==> Google no puede garantizar la exactitud de los tipos de cambio utilizados por la calculadora. Debe confirmar las tarifas actuales antes de realizar cualquier transacción que pueda verse afectada por cambios en las tasas de cambio. Las tasas de moneda extranjera proporcionadas por Citibank NA se muestran bajo licencia. Las tarifas son solo informativas y están sujetas a cambios sin previo aviso. Las tasas de las transacciones reales pueden variar y Citibank no está ofreciendo realizar ninguna transacción en ningún momento.
El Banco Central Europeo (BCE) también tiene la alimentación gratuita más confiable que yo sepa. Contiene aproximadamente 28 monedas y se actualiza al menos diariamente.
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Para obtener más formatos y herramientas, consulte la página de referencia del BCE: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html
Gracias por todas sus respuestas.
Monedaconverterapi gratis:
- Tasas actualizadas cada 30 min
- No se requiere cuenta
Un URL de conversión de muestra es: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y
Para la posteridad aquí están junto con otras posibles respuestas:
API de finanzas de YahooDescontinuado el 2017-11-06Descontinuado a partir del 2017-11-06 con mensaje
Hemos detectado que este servicio se está utilizando en violación de los Términos de servicio de Yahoo. Como tal, el servicio se descontinúa. Para toda la investigación de datos de mercados y acciones futuras, consulte finance.yahoo.com.
Solicitud: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
Este CSV estaba siendo utilizado por un plugin jQuery llamado Curry . Desde entonces, Curry (2017-08-29) decidió usar fixer.io debido a problemas de estabilidad. Puede ser útil si necesita algo más que un CSV.( gracias a Keyo ) Yahoo Query Language le permite obtener un montón de monedas a la vez en XML o JSON. Las actualizaciones de datos por segundo (mientras que el Banco Central Europeo tiene datos de un día), y se detiene en el fin de semana. No requiere ningún tipo de registro.
Aquí está el generador de consultas YQL, donde puedes probar una consulta y copiar la url:
API de tipos de cambio de código abierto
Gratis para uso personal (1000 visitas por mes)
Cambiar la "base" (desde "USD") no está permitido en la cuenta gratuita
Requiere registro.
Solicitud: http://openexchangerates.org/latest.json
Respuesta:{ "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 ... } }
API del agente de cambio de divisas
Plan gratuito para 1,000 visitas mensuales
Cambiar la "fuente" (de "USD") no está permitido en la cuenta gratuita
Requiere registro.
Documentación: currencylayer.com/documentation
Respuesta de 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 (datos del Banco Central Europeo)
Plan gratuito para 1,000 visitas mensuales
No se permite cambiar "fuente" (de "USD") en Cuenta gratuita Requiere registro.Este punto final API está en desuso y dejará de funcionar el 1 de junio de 2018. Para obtener más información, visite: https://github.com/fixerAPI/fixer#readme)
Sitio web: http://fixer.io/
Solicitud de ejemplo: http://api.fixer.io/latest?base=USD
Solo recoge un valor por cada díaFuente del Banco Central Europeo
Documentos: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
Solicitud: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Respuesta 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>
Consulta de tasa de cambio de Google (analizada)Actualmente no disponible:Solicitud: http://rate-exchange.appspot.com/currency?from=USD&to=EUR
Respuesta:{"to": "EUR", "rate": 0.76911244400000001, "from": "USD"}
Aquí hay otra API JSON (P) basada en la API de Google (fuente: 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 ):
http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1answer original de Ryan .
Obtuve este contenido de 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);
?>
Para todos los chicos novatos que buscan alguna pista sobre la conversión de divisas, echen un vistazo a este enlace. Datavoila
Ayudó a med mucho sobre mi propio proyecto en C #. En caso de que el sitio desaparezca, agregaré el siguiente código. Simplemente agregue los pasos a continuación a su propio proyecto. Perdón por el formateo.
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);
Puedes probar geoplugin
Además de la geolocalización realizada por IP (pero la IP es la IP del proveedor, por lo que no es tan precisa), también devuelven monedas y tienen un convertidor de divisas: ver ejemplos.
Ellos tienen 111 monedas actualizadas.
Si está buscando una solución basada en ruby para este problema, le recomiendo usar el método Google Calculator una solución similar a la siguiente: 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})"
Si necesita una API gratuita y simple para convertir una moneda a otra, intente free.currencyconverterapi.com .
Descargo de responsabilidad, soy el autor del sitio web y lo uso para uno de mis otros sitios web.
El servicio es gratuito incluso para aplicaciones comerciales, pero no ofrece ninguna garantía. Por motivos de rendimiento, los valores solo se actualizan cada 30 minutos.
Una URL de conversión de muestra es: http://free.currencyconverterapi.com/api/v3/convert?q=EUR_PHP&compact=ultra que devolverá un valor con formato json, por ejemplo, {"EUR_PHP": 60.849184}
Yahoo tiene una función YQL para obtener un montón de monedas a la vez en XML o JSON. Me he dado cuenta de que los datos están actualizados por minuto, donde el BCE tiene datos del día anterior, y se detiene en el fin de semana.
Aquí está su generador de consultas, donde puede probar una consulta y copiar la url: