Как мне получить обменные курсы через API, например Google Finance?
Теперь я нашел Google Finance API и начал просматривать это, но я нашел много информации о портфелях, сделках, позициях и другие вещи, о которых я ничего не знаю.
Я смотрю на неправильные документы? Что мне нужно сделать, чтобы получить фид обменных курсов от GF? Возможно ли это?
ИЗМЕНИТЬ
Сделать вещи немного яснее. Меня не интересует технический материал, и я не хочу кода.
Ответы
Ответ 1
Спасибо за все ваши ответы.
Бесплатный конвертер валют:
-
Цены обновляются каждые 30 минут.
- Ключ API теперь требуется для бесплатного сервера.
Пример URL конверсии: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y
Для потомков здесь они наряду с другими возможными ответами:
API финансов Yahoo снят с производства 2017-11-06
Прекращено с 2017-11-06 с сообщением
Нам стало известно, что эта услуга используется в нарушение Условий предоставления услуг Yahoo. Таким образом, услуга в настоящее время прекращено. Для всех будущих исследований рынка и акций, пожалуйста, обратитесь к finance.yahoo.com.
Запрос: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X
Этот CSV использовался плагином jQuery под названием Curry. С тех пор (2017-08-29) Карри перешел на использование fixer.io из-за проблем со стабильностью.
Может быть полезно, если вам нужно больше, чем просто CSV.
(благодаря Keyo) Yahoo Query Language позволяет получать целую кучу валют одновременно в XML или JSON. Данные обновляются с точностью до секунды (в то время как у Европейского центрального банка есть данные за прошедшие сутки) и останавливаются на выходных. Не требует никакой регистрации.
http://query.yahooapis.com/v1/public/yql?q=select * from yahoo.finance.xchange где пара в ("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
Вот YQL-конструктор, где вы можете протестировать запрос и скопировать URL: (НЕТ ДОЛГО ДОСТУПНО)
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
![enter image description here]()
API с открытым исходным кодом обменного курса
Бесплатно для личного пользования (1000 просмотров в месяц)
Изменение бесплатной учетной записи (от "USD") в бесплатной учетной записи
Требуется регистрация.
Запрос: http://openexchangerates.org/latest.json
Ответ:
{
"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 валютного уровня
Бесплатный план для 250 ежемесячных просмотров
Смена "источника" (из "USD") в бесплатной учетной записи не допускается.
Требуется регистрация.
Документация: currencylayer.com/documentation
Ответ 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 (данные Европейского центрального банка)
Бесплатный план для 1000 посещений в месяц
Смена "источника" (из "USD") не разрешена в бесплатном аккаунте.
Требуется регистрация.
Эта конечная точка API устарела и перестанет работать 1 июня 2018 года. Для получения дополнительной информации, пожалуйста, посетите: https://github.com/fixerAPI/fixer#readme)
Веб-сайт: http://fixer.io/
Пример запроса:
http://api.fixer.io/latest?base=USD
Собирает только одно значение за каждый день
Лента Европейского центрального банка
Docs:
http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev
Запрос: http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Ответ 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>
exchangeratesapi.io
Согласно веб-сайту:
API курсов валют - это бесплатный сервис для текущих и исторических курсов валют, публикуемых Европейским центральным банком
.
Этот сервис совместим с fixer.io и действительно прост в использовании: ключ API не требуется. Например (это использует CURL, но вы можете использовать ваш любимый инструмент запроса):
> curl https://api.exchangeratesapi.io/latest?base=GBP&symbols=USD
{"base":"GBP","rates":{"USD":1.264494191},"date":"2019-05-29"}
CurrencyApi.net
Бесплатный план для 1250 ежемесячных просмотров
Базовая валюта установлена на свободном счете в долларах США.
Требуется регистрация.
Документация: currencyapi.net/documentation
Ответ JSON:
{
"valid": true,
"timestamp": 1567957373,
"base": "USD",
"rates": {
"AED": 3.673042,
"AFN": 77.529504,
"ALL": 109.410403,
// 165 currencies + some cryptos
}
}
Валюта от LabStack
Веб-сайт: https://labstack.com/currency
Документация: https://labstack.com/docs/api/currency/convert
Цены: https://labstack.com/pricing
Запрос: https://currency.labstack.com/api/v1/convert/1/USD/INR
Ответ:
{
"time": "2019-10-09T21:15:00Z",
"amount": 71.1488
}
Ответ 2
Европейский центральный банк (ЕЦБ) также имеет самый надежный бесплатный канал, о котором я знаю. Он содержит приблизительно 28 валют и обновляется, по крайней мере, ежедневно.
http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml
Дополнительные форматы и инструменты см. на странице справки ECB:
http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html
Ответ 3
Yahoo имеет функцию YQL, чтобы сразу получить целую кучу валют в XML или JSON. Я заметил, что данные обновляются в тот момент, когда ЕЦБ имеет данные дня и останавливается в выходные.
http://query.yahooapis.com/v1/public/yql?q=select * от yahoo.finance.xchange, где пара в ( "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
Вот их построитель запросов, где вы можете протестировать запрос и скопировать URL-адрес:
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
Ответ 4
Если вам нужен бесплатный и простой API для конвертации одной валюты в другую, попробуйте free.currencyconverterapi.com.
Отказ от ответственности, я автор сайта, и я использую его для одного из моих других сайтов.
Услуга бесплатна для использования даже в коммерческих целях, но не дает никаких гарантий. По соображениям производительности значения обновляются только каждый час.
Пример URL преобразования: http://free.currencyconverterapi.com/api/v6/convert?q=EUR_PHP&compact=ultra&apiKey=sample-api-key, который будет возвращать значение в формате json, например {"EUR_PHP": 60.849184}
Ответ 5
Я получил этот контент из 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);
?>
Ответ 6
Вот некоторые API обмена с примером PHP.
Предоставляет 1000 запросов в месяц бесплатно. Вы должны зарегистрироваться и получить идентификатор приложения. Базовая валюта USD для бесплатной учетной записи. Проверьте поддерживаемые валюты и документацию.
// 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
Предоставляет 1000 запросов в месяц бесплатно. Вы должны зарегистрироваться и захватить ключ доступа. Таможенная базовая валюта не поддерживается в бесплатной учетной записи. Проверьте документацию.
$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
Ответ 7
Вы можете попробовать geoplugin
Помимо геолокации, выполняемой по IP (но IP-адрес провайдера IP, поэтому не так точен), они также возвращают валюты и имеют конвертер валют: см. примеры.
У них обновлено 111 валют.
Ответ 8
Если вы ищете решение на основе Ruby для этой проблемы, я рекомендую использовать метод Google Calculator для решения, аналогичного следующему: 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 output is not JSON, it 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})"
Ответ 9
Вот один простой PHP Script, который получает обменный курс между GBP и 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/>';
?>
Курсы валют Google не являются точными. Google говорит: > Google не может гарантировать точность обменных курсов, используемых калькулятором. Вы должны подтвердить текущие ставки перед совершением каких-либо транзакций, на которые могут повлиять изменения обменных курсов. Курсы иностранной валюты, предоставляемые Citibank N.A., отображаются по лицензии. Цены указаны исключительно в информационных целях и могут быть изменены без предварительного уведомления. Тарифы на фактические транзакции могут отличаться, и Citibank не предлагает вносить какие-либо транзакции в любой момент.
Ответ 10
Для всех новичков, которые ищут некоторый намек на конвертацию валют, взгляните на эту ссылку. Datavoila
Это помогло мне много узнать о моем собственном проекте на С#. На всякий случай сайт исчезнет, я добавлю код ниже. Просто добавьте приведенные ниже шаги в свой собственный проект. Извините за форматирование.
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);