Wie erhalte ich Wechselkurse über eine API wie Google Finance? [geschlossen]


137

Jetzt habe ich die Google Finance-API gefunden und angefangen, sie durchzusehen, aber ich habe viele Informationen über Portfolios, Transaktionen, Positionen und andere Dinge gefunden, von denen ich nichts weiß.

Schaue ich auf die falschen Dokumente? Was muss ich tun, um einen Wechselkurs von GF zu erhalten? Ist das überhaupt möglich?

BEARBEITEN

Um die Dinge etwas klarer zu machen. Ich interessiere mich weder für technische Dinge noch möchte ich Code.


Siehe stackoverflow.com/a/21627583/592868 für eine PHP-Klasse mit Yahoo! Finanzen
Felix Geenen

3
@ George Stocker Diese Frage war ursprünglich sehr spezifisch in Bezug auf eine alberne Google-API, die vor einiger Zeit von AFAIK eingestellt wurde. Irgendwie fügten die Leute Alternativen zu dieser API hinzu und sie verwandelte sich in eine Art Index über Geldwechsel-APIs. Offensichtlich findet die Community es nützlich, da es Tonnen von Stimmen und Favoriten hat ...
Bogdan

@ Bogdan Was soll ich tun?
George Stocker

4
@GeorgeStocker Nun, Sie können es geschlossen lassen, wenn Sie der Meinung sind, dass es gegen SO-Regeln verstößt, aber löschen Sie es nicht. Die Leute scheinen dies eine gute Referenz für diese Art von Sachen zu finden. Mein 2c.
Bogdan

@ GeorgeStocker Es ist die Nummer 1 in Google für Währungs-Javascript-APIs und unglaublich nützlich. Dieses Element verdient es, auf dem neuesten Stand zu bleiben, da es vielen Entwicklern hilft. Dies ist der Hauptgrund, warum ein Stackoverflow erstellt wurde. Obwohl Sie im Buchstaben der Regel Recht haben, ist es nicht im Geiste, dieses Thema zu schließen, da keine Spam- oder Meinungsantworten zu finden sind. Ich bitte Sie, es wieder zu öffnen.
Jan Derk

Antworten:


821

Vielen Dank für alle Ihre Antworten.

Kostenlose Währungsumrechnung:

  • Preise alle 30 min aktualisiert
  • Für den freien Server ist jetzt ein API-Schlüssel erforderlich.

Eine Beispiel-Conversion-URL lautet: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


Für die Nachwelt hier sind sie zusammen mit anderen möglichen Antworten:

  1. Yahoo Finance API Eingestellt 2017-11-06 ###

Eingestellt am 06.11.2017 mit Meldung

Es ist uns aufgefallen, dass dieser Dienst unter Verstoß gegen die Nutzungsbedingungen von Yahoo verwendet wird. Aus diesem Grund wird der Dienst eingestellt. Informationen zu allen zukünftigen Markt- und Aktiendaten finden Sie unter Finance.yahoo.com.

Anfrage: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
Diese CSV wurde von einem jQuery-Plugin namens [Curry] [1] verwendet. Curry hat seit (29.08.2017) aufgrund von Stabilitätsproblemen fixer.io verwendet. Könnte nützlich sein, wenn Sie mehr als nur eine CSV benötigen.

  1. ( Dank an Keyo ) Mit Yahoo Query Language können Sie eine ganze Reihe von Währungen gleichzeitig in XML oder JSON abrufen . Die Daten werden sekundengenau aktualisiert (während die Europäische Zentralbank über eintägige Daten verfügt) und am Wochenende gestoppt. Erfordert keine Anmeldung.

[http://query.yahooapis.com/v1/public/yql?q=select * von yahoo.finance.xchange wo Paar in ("USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK" , "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", "USDSEK", "USDCHF", "USDNOK", "USDHRK", "USDRUB", "USDTRY", " USDAUD "," USDBRL "," USDCAD "," USDCNY "," USDHKD "," USDIDR "," USDILS "," USDINR "," USDKRW "," USDMXN "," USDMYR "," USDNZD "," USDPHP " , "USDSGD", "USDTHB", "USDZAR", "USDISK") & env = store: //datatables.org/alltableswithkeys] [1]

Hier ist der YQL-Abfrage-Generator, wo Sie eine Abfrage testen und die URL kopieren können: (NICHT MEHR VERFÜGBAR)

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

yql-Konsole nicht mehr verfügbar

  1. Open Source Wechselkurs-API

Kostenlos für den persönlichen Gebrauch (1000 Treffer pro Monat) Das
Ändern der "Basis" (von "USD") ist im kostenlosen Konto nicht zulässig
. Registrierung erforderlich.
Anfrage: http://openexchangerates.org/latest.json
Antwort:

   <!-- language: lang-js -->

    {
      "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 ...
      }
    }
  1. Currencylayer-API

Kostenloser Plan für 250 monatliche Treffer Das
Ändern der "Quelle" (von "USD") ist im kostenlosen Konto nicht zulässig
. Registrierung erforderlich.
Dokumentation : rencylayer.com/documentation

JSON-Antwort:

   <!-- language: lang-js -->

    {
      [...]
      "timestamp": 1436284516,
      "source": "USD",
      "quotes": {
          "USDAUD": 1.345352401,
          "USDCAD": 1.27373397,
          "USDCHF": 0.947845302,
          "USDEUR": 0.91313905,
          "USDGBP": 0.647603397,
          // 168 world currencies
          }
      }
  1. Fixer.io API (Daten der Europäischen Zentralbank)

Kostenloser Plan für 1.000 monatliche Treffer Das
Ändern der "Quelle" (von "USD") ist im kostenlosen Konto nicht zulässig. Registrierung erforderlich.

Dieser API-Endpunkt ist veraltet und funktioniert am 1. Juni 2018 nicht mehr. Weitere Informationen finden Sie unter: https://github.com/fixerAPI/fixer#readme)


Website: http://fixer.io/
Beispielanforderung: [http://api.fixer.io/latest?base=USD weibliches [7] Sammelt
nur einen Wert pro Tag
  1. Feed der Europäischen Zentralbank

Dokumente: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
Anfrage: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

XML-Antwort ::

   <!-- language: lang-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>
  1. ### exchangeangerapi.io ### Laut der Website:

    Wechselkurs-API ist ein kostenloser Service für aktuelle und historische Wechselkurse, die von der Europäischen Zentralbank veröffentlicht werden
    Dieser Dienst ist mit fixer.io kompatibel und sehr einfach zu bedienen: Es wird kein API-Schlüssel benötigt. Zum Beispiel (dies verwendet CURL, aber Sie können Ihr bevorzugtes Anfragetool verwenden):

    > curl https://api.exchangeratesapi.io/latest?base=GBP&symbols=USD
    {"base":"GBP","rates":{"USD":1.264494191},"date":"2019-05-29"}
    
  2. ### CurrencyApi.net ### Kostenloser Plan für 1250 monatliche Treffer Die
    Basiswährung wird auf dem kostenlosen Konto als USD festgelegt
    . Registrierung erforderlich.
    Dokumentation : rencyapi.net/documentation

    JSON-Antwort:

    {
      "valid": true,
      "timestamp": 1567957373,
      "base": "USD",
      "rates": {
              "AED": 3.673042,
              "AFN": 77.529504,
              "ALL": 109.410403,
              // 165 currencies + some cryptos
          }
      }
  3. ### Währung von LabStack ###

Website: https://labstack.com/currency
Dokumentation: https://labstack.com/docs/api/currency/convert
Preisgestaltung: https://labstack.com/pricing
Anfrage: https://currency.labstack.com / api / v1 / convert / 1 / USD / INR
Antwort:

```js
 {
   "time": "2019-10-09T21:15:00Z",
   "amount": 71.1488
 }
 ```

[1]: http://query.yahooapis.com/v1/public/yql?q=select * von yahoo.finance.xchange, wo Paar in ("USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK", "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", "USDSEK", "USDCHF", "USDNOK", "USDHRK", "USDRUB", "USDTRY" "," USDAUD "," USDBRL "," USDCAD "," USDCNY "," USDHKD "," USDIDR "," USDILS "," USDINR "," USDKRW "," USDMXN "," USDMYR "," USDNZD ", "USDPHP", "USDSGD", "USDTHB", "USDZAR", "USDISK") & env = store: //datatables.org/alltableswithkeys


6
Hier ist ein Link mit nützlicheren Erläuterungen zur Yahoo-Finanz-API.
Miranda

4
Bitte beachten Sie, dass die Open Exchange Rates-Projektdaten von GitHub entfernt wurden (dort sind derzeit KEINE Daten verfügbar) und jetzt über openexchangerates.org bereitgestellt werden - danke!
William Joss Crowcroft

17
rate-exchange.appspot funktioniert nicht mehr ..
letitbefornow


5
UPDATE: Jetzt hat Yahoo die API mit dieser Nachricht It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.
deaktiviert

66

Die Europäische Zentralbank (EZB) hat auch den zuverlässigsten kostenlosen Feed, den ich kenne. Es enthält ca. 28 Währungen und wird mindestens täglich aktualisiert.

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

Weitere Formate und Tools finden Sie auf der Referenzseite der EZB: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html


3
Schade, fixer.io kommt ohne Garantie. Nicht für die Produktion.
Ben Sinclair

2
Leider wird es am Wochenende nicht aktualisiert.
Denis

Viele Devisenhandelsmärkte sind freitags von 16 Uhr EST bis sonntags von 17 Uhr EST geschlossen. Wenn Sie wirklich genauere Wochenendpreise benötigen, würde ich einen anderen Stream prüfen.
Ryan

1
@ Ryan Aber warum werden nicht alle Währungen angezeigt?
Sunil Targe

4
Der Fixer.io-Dienst ist leider veraltet. Es gibt eine alternative kompatible Ersatz-Wechselkurs-API unter exchange.api.io
madisvain

53

Hallo @Keyo, wenn ich das YQL-Beispiel versuche, das Sie in meinem Java-Code angegeben haben, der versucht, als URL zu lesen, erhalte ich eine E / A-Ausnahme (Server hat den HTTP-Antwortcode zurückgegeben: 400 für URL: query.yahooapis.com/v1/public/ yql? q = wähle * aus yahoo.finance.xchange aus, wobei das Paar in ("USDEUR") & env = store: //datatables.org/alltableswithkeys) funktioniert, was funktioniert, wenn ich nur über diese URL in den Browser
kopiere

'public static void main (String [] args) {StringrencyPair = "USDEUR"; String address = " query.yahooapis.com/v1/public/yql?q=select * von yahoo.finance.xchange, wobei das Paar in (" +rencyPair + ") & env = store: //datatables.org/ alltableswithkeys "; try {// String response = URLReader.read (Adresse); // System.out.println (Antwort); URL url = neue URL (Adresse); BufferedReader in = neuer BufferedReader (neuer InputStreamReader (url.openStream ())); } catch (Ausnahme e) {// TODO Automatisch generierter catch-Block e.printStackTrace (); }} '
Malik Firose

Hallo @Keyo, gibt es eine Möglichkeit, die hohe / niedrige Rate für einen bestimmten Zeitrahmen in YQL zu erhalten?
Entpnomad

3
Leider hat Yahoo gestern seinen Dienst ohne Vorwarnung eingestellt und Tausende von Unternehmen in Gefahr gebracht.
FlorianB

Diese API scheint dauerhaft deaktiviert zu sein.
Reduzierung der Aktivität

47

Wenn Sie eine kostenlose und einfache API zum Konvertieren einer Währung in eine andere benötigen , versuchen Sie es mit free.currencyconverterapi.com .

Haftungsausschluss, ich bin der Autor der Website und verwende sie für eine meiner anderen Websites.

Der Service kann auch für kommerzielle Anwendungen kostenlos genutzt werden, bietet jedoch keine Garantie. Aus Leistungsgründen werden die Werte nur stündlich aktualisiert.

Eine Beispiel-Konvertierungs-URL lautet: http://free.currencyconverterapi.com/api/v6/convert?q=EUR_PHP&compact=ultra&apiKey=sample-api-key, die einen json-formatierten Wert zurückgibt, z. B. {"EUR_PHP": 60.849184}


1
Vielen Dank. Was ist die Quelle der Conversion-Raten? Dies gibt uns die Möglichkeit, die Zuverlässigkeit Ihres Dienstes zu messen.
s3m3n

1
Works Nov 2017. Vielen Dank für die Bereitstellung. Aber bitte stellen Sie es weiterhin zur Verfügung, da Websites davon abhängen. Ich habe Yahoo Finance verwendet, das gerade gestorben ist.
Tuntable

1
Kraftvoll. Vielen Dank Autor
James Oduro

1
Ich werde bald auf Premium upgraden.
James Oduro

1
Es ist NICHT mehr kostenlos. Kostenlos ist nur für Test- / Demo-Zwecke. Wenn Sie mehr anfordern, wird 400 zurückgegeben und es wird eine Fehlermeldung angezeigt: "Das System hat diese Anforderung als Missbrauch des kostenlosen Dienstes erkannt. Wenn Sie weitere Anfragen benötigen, sollten Sie den kostenpflichtigen Dienst in Betracht ziehen Weitere Informationen. Danke. " und blockiere deine ip und api-key.
Schneller

25

Ich habe diesen Inhalt von http://www.scriptarticle.com/2012/05/03/get-live-currency-rates-and-currency-conversion-using-php-and-apis/ erhalten.

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

?>

5
Wenn iGoogle nicht mehr auf dem Laufenden ist, ist dies die beste Option. Die vorherige Option www.google.com/ig funktioniert nicht mehr.
Raphie

1
www.google.com/finance funktioniert nicht mehr. Ab September 2017 wurde die Finanz-URL in Finance.google.com geändert. : D bryanveloso.com/2017/09/14/…
jehzlau

2
Der Wechsel von Google zu Finance.google.com hat mich gestolpert und eine Curl-Anfrage gebrochen. Um dies zu beheben, bitten Sie curl, den Weiterleitungen zu folgen: curl_setopt ($ curl, CURLOPT_FOLLOWLOCATION, true);
Jaybong

1
Gerade versucht google.com/finance/converter?a=1&from=INR&to=USD hat nicht funktioniert, öffnet den Dialog.
Tuntable

4
www.google.com/finance/converter und Finance.google.com/finance/converter sind nicht mehr verfügbar.
Christian

16

Hier sind einige Exchange-APIs mit PHP-Beispiel.

[ Open Exchange Rates API ]

Bietet 1.000 Anfragen pro Monat kostenlos. Sie müssen sich registrieren und die App-ID abrufen. Die Basiswährung USD für kostenloses Konto. Überprüfen Sie die unterstützten Währungen und die Dokumentation .

// 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

[ Währungsschicht-API ]

Bietet 1.000 Anfragen pro Monat kostenlos. Sie müssen sich registrieren und den Zugriffsschlüssel greifen. Benutzerdefinierte Basiswährung wird im kostenlosen Konto nicht unterstützt. Überprüfen Sie die Dokumentation .

$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


14
Trefferquote sehr leicht .. nicht empfohlen.
Ayush Goyal

7
@AyushGoyal Wenn Sie die API für jede Konvertierung treffen, machen Sie es trotzdem falsch. Richten Sie einen Cronjob ein, um die API stündlich abzufragen und die aktuellen Wechselkurse in einer Datenbanktabelle zu speichern. Wenn Sie Austauschberechnungen durchführen müssen, ziehen Sie die Daten so oft aus der Tabelle, wie Sie möchten. Auf diese Weise erreichen Sie niemals das monatliche Limit.
Tpartee

1

Sie können Geoplugin versuchen

Neben der Geolokalisierung durch IP (aber die IP ist die IP des Anbieters, also nicht so genau), geben sie auch Währungen zurück und verfügen über einen Währungsumrechner: siehe Beispiele.

Sie haben 111 Währungen aktualisiert.


0

Wenn Sie nach einer rubinbasierten Lösung für dieses Problem suchen, empfehle ich die Verwendung der Google Calculator-Methode, die der folgenden ähnelt: 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})"

2
iGoogle wurde am 1. November 2013 eingestellt. Diese API funktioniert nicht mehr.
reformiert


0

Hier ist ein einfaches PHP-Skript, das den Wechselkurs zwischen GBP und USD ermittelt

<?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/>'; 
?>

Google-Wechselkurse sind nicht korrekt Google selbst sagt ==> Google kann die Richtigkeit der vom Taschenrechner verwendeten Wechselkurse nicht garantieren. Sie sollten die aktuellen Kurse bestätigen, bevor Sie Transaktionen durchführen, die von Änderungen der Wechselkurse betroffen sein könnten. Von der Citibank NA bereitgestellte Fremdwährungskurse werden unter Lizenz angezeigt. Die Preise dienen nur zu Informationszwecken und können ohne vorherige Ankündigung geändert werden. Die Preise für tatsächliche Transaktionen können variieren, und die Citibank bietet nicht an, Transaktionen zu einem angezeigten Kurs abzuschließen.


3
iGoogle wurde am 1. November 2013 eingestellt. Diese API funktioniert nicht mehr.
reformiert

-1

Werfen Sie einen Blick auf diesen Link für alle Neulinge, die nach Hinweisen zur Währungsumrechnung suchen. Datavoila

Es hat mir in Bezug auf mein eigenes Projekt in C # sehr geholfen. Für den Fall, dass die Site verschwindet, füge ich den folgenden Code hinzu. Fügen Sie einfach die folgenden Schritte zu Ihrem eigenen Projekt hinzu. Entschuldigung für die Formatierung.

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);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.