Bagaimana cara saya mendapatkan nilai tukar mata uang melalui API seperti Google Finance? [Tutup]


137

Sekarang, saya memang menemukan Google Finance API dan mulai mencari melalui itu tetapi saya menemukan banyak info tentang portofolio, transaksi, posisi & hal-hal lain yang saya tidak tahu tentang.

Apakah saya melihat dokumen yang salah? Apa yang harus saya lakukan untuk mendapatkan umpan nilai tukar dari GF? Apakah ini mungkin?

EDIT

Untuk membuatnya lebih jelas. Saya tidak tertarik pada hal-hal teknis juga tidak ingin kode apa pun.


lihat stackoverflow.com/a/21627583/592868 untuk kelas php menggunakan Yahoo! Keuangan
Felix Geenen

3
@George Stocker Pertanyaan ini pada awalnya sangat spesifik tentang beberapa Google API konyol yang telah dihentikan beberapa waktu lalu AFAIK. Entah bagaimana orang mulai menambahkan alternatif untuk API itu dan berubah menjadi semacam indeks tentang API pertukaran mata uang. Jelas komunitas merasa ini berguna karena mendapat banyak suara dan favorit ...
Bogdan

@ Bogdan Apa yang ingin Anda lakukan?
George Stocker

4
@ GeorgeStocker Nah, Anda bisa membiarkannya tertutup jika Anda merasa itu melanggar aturan SO, tapi jangan hapus; Orang-orang tampaknya menganggap ini sebagai referensi yang bagus untuk hal-hal semacam ini. 2c saya
Bogdan

@ GeorgeStocker Ini adalah # 1 di Google untuk api javascript mata uang dan sangat berguna. Item ini layak untuk terus diperbarui karena membantu banyak pengembang, yang merupakan alasan utama stackoverflow dibuat. Meskipun Anda benar dalam surat aturan itu, tidak dalam semangat untuk menutup topik ini, karena tidak ada spam atau jawaban yang dikemukakan untuk ditemukan. Saya mohon Anda membukanya lagi.
Jan Derk

Jawaban:


821

Terima kasih atas semua jawaban Anda.

Konverter mata uang gratis:

  • Tarif diperbarui setiap 30 menit
  • Kunci API sekarang diperlukan untuk server gratis.

Contoh URL konversi adalah: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


Untuk anak cucu di sini mereka bersama dengan kemungkinan jawaban lain:

  1. API keuangan Yahoo Dihentikan 2017-11-06 ###

Dihentikan pada 2017-11-06 dengan pesan

Telah menjadi perhatian kami bahwa layanan ini digunakan untuk melanggar Ketentuan Layanan Yahoo. Dengan demikian, layanan ini dihentikan. Untuk semua riset data pasar dan ekuitas masa depan, silakan merujuk ke finance.yahoo.com.

Permintaan: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
CSV ini digunakan oleh plugin jQuery yang disebut [Curry] [1]. Curry sejak (2017-08-29) pindah untuk menggunakan fixer.io sebagai gantinya karena masalah stabilitas. Mungkin bermanfaat jika Anda membutuhkan lebih dari sekadar CSV.

  1. ( terima kasih kepada Keyo ) Yahoo Query Language memungkinkan Anda mendapatkan banyak mata uang sekaligus dalam XML atau JSON. Pembaruan data oleh yang kedua (sedangkan Bank Sentral Eropa memiliki data hari tua), dan berhenti di akhir pekan. Tidak memerlukan jenis pendaftaran apa pun.

[http://query.yahooapis.com/v1/public/yql?q=seleksi * dari yahoo.finance.xchange tempat berpasangan dalam ("USDEUR", "USDJPY", "USDBGN", "USDCZK", "USDDKK", "USDDKK" , "USDGBP", "USDHUF", "USDLTL", "USDLVL", "USDPLN", "USDRON", "USDSEK", "USDCHF", "USDNOK", "USDHRK", "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]

Ini dia Pembuat kueri YQL, tempat Anda dapat menguji kueri dan menyalin url: (NO LONGER AVAILABLE)

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

konsol yql tidak lagi tersedia

  1. API Nilai Tukar Sumber Terbuka

Gratis untuk penggunaan pribadi (1000 hit per bulan)
Mengubah "basis" (dari "USD") tidak diperbolehkan di Akun gratis
Membutuhkan pendaftaran.
Permintaan: http://openexchangerates.org/latest.json
Tanggapan:

   <!-- 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. API currencylayer

Paket Gratis untuk 250 klik bulanan.
Mengubah "sumber" (dari "USD") tidak diperbolehkan di akun Gratis
Membutuhkan pendaftaran.
Dokumentasi: currencylayer.com/documentation

Tanggapan JSON:

   <!-- 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. API Fixer.io (data Bank Sentral Eropa)

Paket Gratis untuk 1.000 klik bulanan.
Mengubah "sumber" (dari "USD") tidak diperbolehkan di akun Gratis Membutuhkan pendaftaran.

Titik akhir API ini sudah tidak digunakan lagi dan akan berhenti berfungsi pada tanggal 1 Juni 2018. Untuk informasi lebih lanjut, silakan kunjungi: https://github.com/fixerAPI/fixer#readme)


Situs web: http://fixer.io/
Contoh permintaan: [http://api.fixer.io/latest?base=USD[[7]
Hanya mengumpulkan satu nilai per setiap hari
  1. Umpan Bank Sentral Eropa

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

Tanggapan XML :

   <!-- 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. ### exchangeratesapi.io ### Menurut situs web:

    Nilai tukar API adalah layanan gratis untuk nilai tukar asing terkini dan historis yang diterbitkan oleh Bank Sentral Eropa
    Layanan ini kompatibel dengan fixer.io dan sangat mudah digunakan: tidak diperlukan kunci API. Misalnya (ini menggunakan CURL, tetapi Anda dapat menggunakan alat permintaan favorit Anda):

    > curl https://api.exchangeratesapi.io/latest?base=GBP&symbols=USD
    {"base":"GBP","rates":{"USD":1.264494191},"date":"2019-05-29"}
    
  2. ### CurrencyApi.net ### Paket gratis untuk 1250 klik bulanan
    Mata uang dasar ditetapkan sebagai USD pada akun gratis
    Membutuhkan pendaftaran.
    Dokumentasi: currencyapi.net/documentation

    Tanggapan JSON:

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

Situs web: https://labstack.com/currency
Dokumentasi: https://labstack.com/docs/api/currency/convert
Penetapan Harga: https://labstack.com/harga
Permintaan: https://currency.labstack.com / api / v1 / convert / 1 / USD / INR
Tanggapan:

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

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


6
Berikut ini tautan dengan penjelasan yang lebih berguna tentang API keuangan Yahoo.
Miranda

4
Harap perhatikan bahwa data proyek Nilai Tukar Terbuka telah dipindahkan dari GitHub (TIDAK ada data yang tersedia di sana sekarang) dan sekarang sedang dilayani melalui openexchangerates.org - terima kasih!
William Joss Crowcroft

17
rate-exchange.appspot tidak berfungsi lagi ..
letitbefornow


5
UPDATE: Sekarang Yahoo menonaktifkan api dengan pesan iniIt 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.
ZenithS

66

Bank Sentral Eropa (ECB) juga memiliki feed gratis paling andal yang saya tahu. Ini berisi sekitar 28 mata uang dan diperbarui setidaknya setiap hari.

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

Untuk lebih banyak format dan alat, lihat halaman referensi ECB: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html


3
fixer.io terlalu buruk datang tanpa garansi. Bukan untuk produksi.
Ben Sinclair

2
Sayangnya, itu tidak diperbarui pada akhir pekan.
Denis

Banyak pasar perdagangan valas ditutup dari jam 4 sore EST pada hari Jumat hingga jam 5 sore hari Minggu. Jika Anda benar-benar membutuhkan tarif akhir pekan yang lebih akurat, maka ya, saya akan memeriksa aliran yang berbeda.
Ryan

1
@Ryan Tapi mengapa tidak menampilkan semua mata uang?
Sunil Targe

4
Layanan Fixer.io sayangnya sudah ditinggalkan. Ada alternatif pengganti API nilai tukar
madisvain

53

Hai @ Kaney, ketika saya mencoba sampel YQL yang Anda berikan dalam kode java saya yang mencoba membaca sebagai URL, saya mendapatkan Pengecualian IO (Server mengembalikan kode respons HTTP: 400 untuk URL: query.yahooapis.com/v1/public/ yql? q = pilih * dari yahoo.finance.xchange tempat pasangan dalam ("USDEUR") & env = store: //datatables.org/alltableswithkeys) yang berfungsi jika saya menyalin URL ini ke browser
Malik Firose

'public static void main (String [] args) {String currencyPair = "USDEUR"; Alamat string = " query.yahooapis.com/v1/public/yql?q=seleksi * dari yahoo.finance.xchange tempat memasangkan (\" "+ currencyPair +" \ ") & env = store: //datatables.org/ alltableswithkeys "; coba {// String response = URLReader.read (address); // System.out.println (respons); URL URL = URL baru (alamat); BufferedReader di = BufferedReader baru (InputStreamReader baru (url.openStream ())); } catch (Exception e) {// TODO Auto catch block catch e.printStackTrace (); }} '
Malik Firose

Hai @ Kaio, apakah ada cara untuk mendapatkan tingkat tinggi / rendah untuk jangka waktu tertentu di YQL?
entpnomad

3
Sedihnya Yahoo menghentikan layanan mereka kemarin tanpa peringatan, membahayakan ribuan bisnis.
FlorianB

API ini tampaknya dinonaktifkan secara permanen.
Mengurangi aktivitas

47

Jika Anda memerlukan API gratis dan sederhana untuk mengonversi satu mata uang ke mata uang lain, coba free.currencyconverterapi.com .

Penafian, saya penulis situs web dan saya menggunakannya untuk salah satu situs web saya yang lain.

Layanan ini bebas digunakan bahkan untuk aplikasi komersial tetapi tidak menawarkan jaminan. Untuk alasan kinerja, nilai hanya diperbarui setiap jam.

Contoh URL konversi adalah: http://free.currencyconverterapi.com/api/v6/convert?q=EUR_PHP&compact=ultra&apiKey=sample-api-key yang akan mengembalikan nilai yang diformat json, misalnya {"EUR_PHP": 60.849184}


1
Terima kasih. Apa sumber tingkat konversi? Ini memberi kami kemungkinan untuk mengukur keandalan layanan Anda.
s3m3n

1
Bekerja Nov 2017. Terima kasih telah menyediakannya. Tapi tolong tetap menyediakannya karena situs bergantung padanya. Sedang menggunakan Yahoo Finance yang baru saja meninggal.
Tuntable

1
Kuat Terima kasih penulis
james Oduro

1
Saya akan segera meningkatkan ke premium.
james Oduro

1
Ini TIDAK gratis lagi. Gratis hanya untuk penggunaan pengujian / demo. Jika Anda meminta lebih dari itu akan mengembalikan 400 dan memberi Anda kesalahan: "Sistem telah mendeteksi permintaan ini sebagai penyalahgunaan layanan gratis. Jika Anda memerlukan lebih banyak permintaan, silakan pertimbangkan untuk menggunakan layanan berbayar. Silakan periksa currencyconverterapi.com/pricing untuk informasi lebih lanjut. Terima kasih. " dan blokir ip dan kunci-api Anda.
Swifty

25

Saya mendapatkan konten ini dari 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);

?>

5
Dengan iGoogle keluar dari loop, ini adalah opsi terbaik, opsi www.google.com/ig sebelumnya tidak lagi berfungsi.
raphie

1
www.google.com/finance tidak berfungsi lagi. Pada September 2017, url keuangan diubah menjadi finance.google.com. : D bryanveloso.com/2017/09/14/…
jehzlau

2
Google pindah ke finance.google.com membuat saya tersandung, dan melanggar permintaan ikal. Untuk memperbaikinya, minta curl untuk mengikuti arahan ulang: curl_setopt ($ curl, CURLOPT_FOLLOWLOCATION, true);
jaybong

1
Baru saja mencoba google.com/finance/converter?a=1&from=INR&to=USD tidak berhasil, buka dialog.
Tuntable

4
www.google.com/finance/converter dan finance.google.com/finance/converter tidak lagi tersedia.
Christian

16

Berikut adalah beberapa pertukaran API dengan contoh PHP.

[ Buka Nilai Tukar API ]

Menyediakan 1.000 permintaan per bulan gratis. Anda harus mendaftar dan mengambil ID Aplikasi. Mata uang dasar USD untuk akun gratis. Periksa mata uang dan dokumentasi yang didukung .

// 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 Lapisan Mata Uang ]

Menyediakan 1.000 permintaan per bulan gratis. Anda harus mendaftar dan mengambil KUNCI Akses. Mata uang dasar khusus tidak didukung dalam akun gratis. Periksa dokumentasinya .

$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
Kuota hit sangat mudah..tidak disarankan.
Ayush Goyal

7
@AyushGoyal Jika Anda menekan API untuk setiap konversi maka Anda tetap salah. Menyiapkan cronjob untuk meminta API setiap jam dan menyimpan nilai tukar saat ini dalam tabel database dan ketika Anda perlu melakukan perhitungan pertukaran, tarik data dari tabel sesering yang Anda mau. Anda tidak akan pernah mencapai batas bulanan seperti itu.
tpartee

1

Anda dapat mencoba geoplugin

Selain geolokasi yang dilakukan oleh IP (tetapi IP adalah penyedia IP, jadi tidak begitu akurat), mereka juga mengembalikan mata uang dan memiliki konverter mata uang: lihat contoh.

Mereka memiliki 111 mata uang yang diperbarui.


0

Jika Anda mencari solusi berbasis ruby ​​untuk masalah ini, saya sarankan menggunakan metode Kalkulator Google solusi yang mirip dengan yang berikut: 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 sudah pensiun pada 1 November 2013. API ini tidak lagi berfungsi.
direformasi


0

Berikut adalah satu Script PHP sederhana yang mendapat nilai tukar antara GBP dan 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/>'; 
?>

Nilai mata uang Google tidak akurat. Google sendiri mengatakan ==> Google tidak dapat menjamin keakuratan nilai tukar yang digunakan oleh kalkulator. Anda harus mengkonfirmasi nilai saat ini sebelum melakukan transaksi yang dapat dipengaruhi oleh perubahan nilai tukar. Nilai tukar mata uang asing yang disediakan oleh Citibank NA ditampilkan di bawah lisensi. Tarif hanya untuk tujuan informasi dan dapat berubah tanpa pemberitahuan. Tarif untuk transaksi aktual dapat bervariasi dan Citibank tidak menawarkan untuk melakukan transaksi apa pun dengan kurs apa pun yang ditampilkan.


3
iGoogle sudah pensiun pada 1 November 2013. API ini tidak lagi berfungsi.
direformasi

-1

Untuk semua orang pemula yang mencari beberapa petunjuk tentang konversi mata uang, lihat tautan ini. Datavoila

Itu banyak membantu med mengenai proyek saya sendiri di C #. Kalau-kalau situs tersebut hilang, saya akan menambahkan kode di bawah ini. Tambahkan saja langkah-langkah di bawah ini ke proyek Anda sendiri. Maaf tentang pemformatan.

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);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.