web-dev-qa-db-fra.com

Comment obtenir les taux de change via une API telle que Google Finance?

Maintenant, j’ai trouvé le API Google Finance et commencé à le parcourir, mais j’ai trouvé beaucoup d’informations sur les portefeuilles, les transactions, les positions et d’autres éléments dont je ne connais rien.

Est-ce que je regarde les mauvais documents? Que dois-je faire pour obtenir un flux de taux de change de GF? Est-ce seulement possible?

EDIT

Pour rendre les choses un peu plus claires. Je ne m'intéresse pas aux problèmes techniques et je ne veux pas de code.

137
Bogdan

Merci pour toutes vos réponses.

Free currencyconverterapi:

  • Tarifs mis à jour toutes les 30 minutes
  • La clé API est maintenant requise pour le serveur libre.

Un exemple d’URL de conversion est le suivant: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


Pour la postérité, elles sont accompagnées d'autres réponses possibles:

  1. API Yahoo Finance Discontinued 2017-11-06

    Discontinued from 2017-11-06 avec le message

    Il a été porté à notre attention que ce service est utilisé en violation des Conditions d'utilisation de Yahoo. En tant que tel, le service est interrompu. Pour toute recherche de données sur les marchés et les actions à venir, veuillez vous reporter à finance.yahoo.com.

    Demande: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
    Ce fichier CSV était utilisé par un plugin jQuery appelé Curry . Depuis le (2017-08-29), Curry a choisi d'utiliser fix.io pour des raisons de stabilité. Peut-être utile si vous avez besoin de plus qu'un simple fichier CSV.

  2. ( merci à Keyo ) Le langage de requête Yahoo vous permet d'obtenir un grand nombre de devises à la fois en XML ou en JSON. Les données sont mises à jour à la seconde (alors que la Banque centrale européenne dispose de données obsolètes) et s’arrêtent le week-end. Ne nécessite aucun type d'inscription.

    http://query.yahooapis.com/v1/public/yql?q=select * de yahoo.finance.xchange, où la paire se trouve dans ("USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK", "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", "USDSEK", "USDCHF", "USDNOK", "USDHRK", "USDRUB", "USDRUB", "USDRY" "," USDAUD "," USDBRL "," USDCAD "," USDCNY "," USDHKD "," USDIDR "," USDILS "," USDINR "," USDKRW "," USDMXN "," USDMYR "," USDNYD "," USDNR " "USDPHP", "USDSGD", "USDTHB", "USDZAR", "USDISK") & env = store: //datatables.org/alltableswithkeys

    Voici la Générateur de requêtes YQL, où vous pouvez tester une requête et copier l’URL: (N’EST PLUS DISPONIBLE)

    http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20*%20from%20yahoo.finance.xchange% 20où% 20pair% 20in% 20% 28% 22USDMXN% 22% 2C% 20% 22USDCHF% 22% 29

enter image description here

  1. API Open Source Exchange Rates

    Gratuit pour un usage personnel (1000 hits par mois)
    La modification de "base" (de "USD") n'est pas autorisée dans le compte Free.
    Nécessite une inscription.
    Requête: http://openexchangerates.org/latest.json
    Réponse:

    {
      "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 ...
      }
    }
    
  2. aPI Currencylayer

    Free Plan pour 1000 hits mensuels
    Changer de "source" (de "USD") n'est pas autorisé dans le compte Free
    Nécessite une inscription.
    Documentation: currencylayer.com/documentation

    Réponse JSON:

    {
      [...]
      "timestamp": 1436284516,
      "source": "USD",
      "quotes": {
          "USDAUD": 1.345352401,
          "USDCAD": 1.27373397,
          "USDCHF": 0.947845302,
          "USDEUR": 0.91313905,
          "USDGBP": 0.647603397,
          // 168 world currencies
          }
      }
    
  3. Fixer.io API (données de la Banque centrale européenne)

    Plan gratuit pour 1 000 visites mensuelles
    Il n'est pas permis de changer "source" (de "USD") dans le compte gratuit. Nécessite une inscription.

    Ce noeud final d'API est obsolète et cessera de fonctionner le 1er juin 2018. Pour plus d'informations, rendez-vous sur: https://github.com/fixerAPI/fixer#readme)


    Site Web: http://fixer.io/
    Exemple de demande: http://api.fixer.io/latest?base=USD
    Ne recueille qu'une valeur par jour

  4. Flux de la Banque centrale européenne

    Docs: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
    Requête: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml

    Réponse 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>
    
  5. echangeratesapi.io

    Selon le site:

    API de taux de change est un service gratuit pour les taux de change actuels et historiques publié par la Banque centrale européenne.
    Ce service est compatible avec fixer.io et est très facile à utiliser: aucune clé d’API n’est nécessaire. Par exemple (ceci utilise CURL, mais vous pouvez utiliser votre outil de requête favori):
    > curl https://api.exchangeratesapi.io/latest?base=GBP&symbols=USD
    {"base":"GBP","rates":{"USD":1.264494191},"date":"2019-05-29"}
    
786
zeFree

La Banque centrale européenne (BCE) dispose également du flux gratuit le plus fiable que je connaisse. Il contient environ 28 devises et est mis à jour au moins une fois par jour.

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

Pour plus de formats et d'outils, voir la page de référence de la BCE: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html

63
Ryan
52
Keyo

Si vous avez besoin d'une API simple et gratuite pour convertir une devise en une autre, essayez free.currencyconverterapi.com .

Disclaimer, je suis l'auteur du site et je l'utilise pour l'un de mes autres sites.

Le service est gratuit, même pour des applications commerciales, mais n'offre aucune garantie. Pour des raisons de performances, les valeurs ne sont mises à jour que toutes les heures.

Un exemple d'URL de conversion est le suivant: http://free.currencyconverterapi.com/api/v6/convert?q=EUR_PHP&compact=ultra&apiKey=sample-api-key qui renverra une valeur au format JSON, par exemple. {"EUR_PHP": 60.849184}

42
Manny

J'ai eu ce contenu 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);

?>
25
Lokesh

Voici quelques API d'échange avec l'exemple PHP.

[ API Exchange Exchange Rates ]

Fournit 1 000 demandes par mois gratuitement. Vous devez vous inscrire et récupérer l'identifiant de l'application. La devise de base USD pour un compte gratuit. Vérifiez les devises supportées et documentation .

// 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 la couche monétaire ]

Fournit 1 000 demandes par mois gratuitement. Vous devez vous inscrire et saisir la clé d'accès. La devise de base personnalisée n'est pas prise en charge dans un compte gratuit. Vérifiez le 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

14
Madan Sapkota

Vous pouvez essayer geoplugin

En plus de la géolocalisation par IP (mais l’IP est l’adresse du fournisseur, elle est donc moins précise), ils renvoient également des devises et disposent d’un convertisseur de devises: voir des exemples.

Ils ont 111 devises mises à jour.

1
user3227746

Si vous cherchez une solution à base de Ruby pour résoudre ce problème, je vous recommande, à l'aide de la méthode Google Calculator, une solution similaire à celle-ci: 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})"
0
ylluminate

Voici un simple script PHP qui obtient le taux de change entre GBP et 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/>'; 
?>

Les taux de change de Google ne sont pas exacts Google dit lui-même ==> Google ne peut garantir l'exactitude des taux de change utilisés par la calculatrice. Vous devez confirmer les taux en vigueur avant d'effectuer toute transaction susceptible d'être affectée par les variations des taux de change. Les taux en devises fournis par Citibank N.A. sont affichés sous licence. Les tarifs sont donnés à titre indicatif et sont susceptibles d'être modifiés sans préavis. Les taux des transactions réelles peuvent varier et Citibank ne propose aucune transaction, quel que soit le taux affiché.

0
mohamed nur