web-dev-qa-db-ja.com

Google FinanceなどのAPIを使用して通貨の為替レートを取得する方法

さて、私は Google Finance API を見つけてそれを見始めましたが、私はポートフォリオ、取引、ポジション、そして私が知っている他のものについて多くの情報を見つけました何もない。

間違ったドキュメントを見ていますか? GFから為替レートの情報を入手するにはどうすればいいですか?これでも可能ですか?

編集

物事をもう少し明確にする。私は技術的なものには興味がなく、コードも欲しくありません。

137
Bogdan

あなたのすべての答えをありがとう。

無料通貨変換:

  • 料金は30分ごとに更新されます
  • 無料サーバーにAPIキーが必要になりました。

サンプルの変換URLは次のとおりです。 http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


ここに子孫のために彼らは他の可能な答えと一緒にいます:

  1. ヤフーファイナンスAPI 製造中止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は、 Curry というjQueryプラグインによって使用されていました。カレーは(2017-08-29)以来安定性の問題のために代わりにfixer.ioを使用することにしました。 CSVだけでは足りない場合に便利です。

  2. Keyo のおかげで)Yahoo Query Languageを使用すると、XMLで一度にたくさんの通貨を取得できます。またはJSON。データは秒単位で更新され(ヨーロッパ中央銀行には1日前のデータがあります)、週末には停止します。いかなる種類のサインアップも必要としません。

    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 "、" USDMXN "、" USDMXN " 、 "USDNZD"、 "USDPHP"、 "USDSGD"、 "USDTHB"、 "USDZAR"、 "USDISK")&env = store://datatables.org/alltableswithkeys

    これが YQLクエリビルダークエリをテストして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%20 where%20pair%20in%20%28%22USDMXN%22%2C%20%22USDCHF%22%29

enter image description here

  1. オープンソース為替レートAPI

    個人使用は無料です (月1000ヒット)
    ( "USD"から) "base"を変更することは無料アカウントでは許可されていません
    登録が必要です。
    リクエスト: 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 ...
      }
    }
    
  2. 通貨レイヤーAPI

    月額1,000回の無料プラン
    ( "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
          }
      }
    
  3. Fixer.io API(欧州中央銀行データ)

    毎月1,000ヒットの無料プラン
    無料のアカウントでは(「USD」から)「ソース」を変更することはできません登録が必要です。

    このAPIエンドポイントは推奨されておらず、2018年6月1日には機能しなくなります。詳細については、https://github.com/fixerAPI/fixer#readmeを参照してください。


    ウェブサイト: http://fixer.io/
    リクエスト例: http://api.fixer.io/latest?base=USD
    毎日1つの値のみを収集します

  4. 欧州中央銀行フィード

    ドキュメント: 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>
    
  5. 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"}
    
777
zeFree

欧州中央銀行(ECB)にも、私が知っている最も信頼できる無料フィードがあります。約28の通貨が含まれており、少なくとも毎日更新されます。

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

その他のフォーマットやツールについてはECBのリファレンスページをご覧ください。 http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html

60
Ryan
52
Keyo

ある通貨を別の通貨に変換するための無料でシンプルなAPIが必要な場合は、 free.currencyconverterapi.com を試してください。

免責事項、私はウェブサイトの作者であり、私は他のウェブサイトの一つにそれを使用します。

このサービスは商用アプリケーションでも無料で使用できますが、保証はありません。パフォーマンス上の理由から、値は1時間ごとにしか更新されません。

サンプル変換URLは次のとおりです。 http://free.currencyconverterapi.com/api/v6/convert?q=EUR_PHP&compact=ultra&apiKey=sample-api-key フォーマットされた値、例えば{"EUR_PHP":60.849184}

40
Manny

私は からこのコンテンツを得ました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

PHPの例を使った交換APIがいくつかあります。

[ オープン為替レートAPI ]

1か月あたり1,000リクエストを無料で提供します。アプリIDを登録して取得する必要があります。無料アカウントの基本通貨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

[ 通貨レイヤAPI ]

1か月あたり1,000リクエストを無料で提供します。アクセスキーを登録して取得する必要があります。カスタム基本通貨は無料アカウントではサポートされていませんサポートされていませんドキュメント を確認してください。

$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

あなたは試すことができます geoplugin

IPによって行われる地理的位置情報の他に(ただしIPはプロバイダIPなので、それほど正確ではありません)、通貨も返され、通貨コンバーターがあります。例を参照してください。

彼らは111の通貨が更新されています。

1
user3227746

この問題に対する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'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

これは、GBPとUSDの間の為替レートを取得する簡単なPHPスクリプトの1つです。

<?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が計算機によって使用される為替レートの正確さを保証することはできません。為替レートの変更によって影響を受ける可能性のあるトランザクションを実行する前に、現在のレートを確認する必要があります。シティバンクN.A.が提供する外貨レートは、ライセンスに基づいて表示されています。料金は情報提供のみを目的としており、予告なく変更されることがあります。実際の取引のレートは異なる場合があり、シティバンクは表示されているレートで取引を行うことを申し出ていません。

0
mohamed nur