Jak uzyskać Kursy wymiany walut za pośrednictwem interfejsu API, takiego jak Google Finance? [zamknięte]
Teraz znalazłem Google Finance API i zacząłem przeglądać to, ale znalazłem wiele informacji na temat portfeli, transakcji, pozycji i innych rzeczy, o których nic nie wiem.
Czy patrzę na nie te dokumenty? Co muszę zrobić, aby uzyskać feed kursów walut z GF? Czy to w ogóle możliwe?
EDIT
Żeby było jaśniej. Nie interesują mnie sprawy techniczne ani nie chcę żadnego kodu.
10 answers
Dzięki za wszystkie odpowiedzi.
Free currencyconverterapi:
- stawki aktualizowane co 30 min
- nie wymaga konta
Przykładowy adres URL konwersji to: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y
Dla potomnych oto one wraz z innymi możliwymi odpowiedziami:
-
[[26]} Yahoo finance API wycofane 2017-11-06
2017-11-06 with message
Okazało się, że usługa ta jest wykorzystywana w naruszenie Warunków Świadczenia Usług Yahoo. W związku z tym usługa jest przerwane. Dla wszystkich przyszłych rynków i akcji badania danych, prosimy o zapoznanie się z finance.yahoo.com.
Zapytanie: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
Ten plik CSV był używany przez wtyczkę jQuery o nazwie Curry. Curry ma od (2017-08-29) przeniesiony do użytku fixer.io zamiast tego ze względu na problemy ze stabilnością. Może się przydać, jeśli potrzebujesz czegoś więcej niż tylko pliku CSV. -
(Dzięki Keyo) język zapytań Yahoo pozwala uzyskać całą masę walut na raz w XML lub JSON. Dane aktualizowane są o sekundę (podczas gdy Europejski Bank Centralny ma dane sprzed dnia) i zatrzymują się w weekend. Nie wymaga rejestracji.
Oto
YQL query builder, gdzie możesz przetestować zapytanie i skopiować adres url: (nie jest już dostępny)
-
Open Source kursy walut API
Darmowe do użytku osobistego (1000 odsłon miesięcznie)
Zmiana "base" (Z "USD") nie jest dozwolona za darmo konto
Wymaga rejestracji.
Zapytanie: http://openexchangerates.org/latest.json
Odpowiedź:{ "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
Darmowy Plan dla 1000 miesięcznych odsłon
Zmiana "źródła" (Z" USD") nie jest dozwolona na darmowym koncie [38]} Wymaga rejestracji.
Dokumentacja: currencylayer.com/documentation
Odpowiedź 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 (Europejski Bank Centralny dane)
Darmowy Plan na 1000 miesięcznych odsłon
Zmiana "source" (Z" USD") nie jest dozwolona na darmowym koncie Wymaga rejestracji.Ten punkt końcowy API jest przestarzały i przestanie działać 1 czerwca 2018. Więcej informacji na stronie: https://github.com/fixerAPI/fixer#readme)
Strona internetowa: http://fixer.io /
Przykładowe zapytanie : http://api.fixer.io/latest?base=USD
Pobiera tylko jedną wartość na każdą dzień -
Europejski Bank Centralny Feed
Docs: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
Zapytanie: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Odpowiedź 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>
-
Google Exchange rate query (parsed)obecnie niedostępne:Zapytanie: http://rate-exchange.appspot.com/currency?from=USD&to=EUR
Odpowiedź:{"to": "EUR", "rate": 0.76911244400000001, "from": "USD"}
Oto kolejny JSON (P) API oparty na Google API (źródło: ten komentarz):
http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-12 06:48:07
Europejski Bank Centralny (EBC) ma również najbardziej niezawodny darmowy feed, jaki znam. Zawiera około 28 walut i jest aktualizowana co najmniej codziennie.
Http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Więcej formatów i narzędzi znajduje się na stronie referencyjnej EBC: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-23 17:37:42
Yahoo ma funkcję YQL, aby uzyskać całą masę walut na raz w XML lub JSON. Zauważyłem, że dane są aktualne przez minutę, gdy EBC ma dane z dnia poprzedniego, i zatrzymuje się w weekend.
Oto ich konstruktor zapytań, w którym możesz przetestować zapytanie i skopiować url:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-06 22:31:14
Jeśli potrzebujesz darmowego i prostego API do konwersji jednej waluty na inną, spróbuj free.currencyconverterapi.com .
Disclaimer, jestem autorem strony i używam jej do jednej z moich innych stron internetowych.
Usługa jest bezpłatna nawet do zastosowań komercyjnych, ale nie oferuje gwarancji. Ze względu na wydajność, wartości są aktualizowane tylko co godzinę.
Przykładowy adres URL konwersji to: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_PHP&compact=ultra który zwróci wartość w formacie json, np. {"EUR_PHP": 60.849184}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-06 07:20:17
Otrzymałem tę treść od 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);
?>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-06 18:29:44
Oto kilka Exchange API z PHP przykład.
[ Open Exchange Rates API ]
Zapewnia 1000 żądań miesięcznie za darmo. Musisz się zarejestrować i pobrać identyfikator aplikacji. Waluta bazowa USD dla DARMOWEGO konta. Sprawdź obsługiwane waluty i dokumentację .
// 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 ]
Zapewnia 1000 żądań miesięcznie za darmo. Musisz się zarejestrować i odebrać dostęp Klucz. Niestandardową walutą bazową jest , a nie obsługiwane na darmowym koncie. Sprawdź dokumentację .
$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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-01 17:19:32
Możesz spróbować geoplugin
Poza geolokalizacją wykonaną przez IP (ale IP to IP dostawcy, więc nie tak dokładne), zwracają również waluty i mają przelicznik walut: patrz przykłady.
Mają zaktualizowane 111 walut.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-04 11:56:35
Jeśli szukasz rozwiązania opartego na ruby dla tego problemu, polecam użycie metody Google Calculator rozwiązanie podobne do następującego: 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})"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-06 18:32:17
Oto jeden prosty skrypt PHP, który otrzymuje kurs wymiany między GBP i 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/>';
?>
Kursy Walut Google nie są dokładne samo google mówi = = > Google nie może zagwarantować dokładności kursów walut stosowanych przez kalkulator. Należy potwierdzić Aktualne Kursy przed dokonaniem jakichkolwiek transakcji, na które mogą mieć wpływ zmiany kursów walut. Kursy walut obcych oferowane przez Citibank N. A. są wyświetlane na licencji. Stawki mają charakter wyłącznie informacyjny i są może ulec zmianie bez powiadomienia. Stawki za rzeczywiste transakcje mogą się różnić, A Citibank Nie oferuje zawierania żadnych transakcji po wyświetlanym kursie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-06 18:33:19
Dla wszystkich nowicjuszy szukających podpowiedzi na temat przeliczania walut, spójrz na ten link. Datavoila
To bardzo pomogło med odnośnie mojego własnego projektu w C#. Na wypadek gdyby strona zniknęła, dodam poniższy kod. Wystarczy dodać poniższe kroki do własnego projektu. Przepraszam za formatowanie.
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);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-06 18:25:17