JSONP で Angular JS $resource を使用して、Google Finance から株価を取得できます。これはここに示されています: http://jsfiddle.net/8zVxH/1/
過去の価格が必要ですが、Google は提供していませんが、Yahoo は提供しています。上記の jsfiddle を次のように変更しました: http://jsfiddle.net/curt00/BqtzB/
コードは次のとおりです。
angular.module('app', ['ngResource']);
function AppCtrl($scope, $resource) {
var yqlURL="http://query.yahooapis.com/v1/public/yql?q=";
var dataFormat="&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";
var symbol = 'GOOG';
var startDate = '2012-12-05';
var endDate = '2012-12-06';
var historical_query = yqlURL+"select%20*%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22"+ symbol +"%22%20and%20startDate%20%3D%20%22"+ startDate +"%22%20and%20endDate%20%3D%20%22"+ endDate +"%22"+ dataFormat;
$scope.yahooFinance = $resource(historical_query,
{callback:'JSON_CALLBACK'},
{get: {method:'JSONP', isArray: false}});
$scope.indexResult = $scope.yahooFinance.get();
}
ブラウザ コンソールに次のエラー メッセージが表示されます。
GET http://query.yahooapis.com/v1/public/yql?q=select%20 *%20from%20yahoo.finance.historicaldata%20where%20symbol%20%3D%20%22GOOG%22%20and%20startDate% 20%3D%20%222012-12-05%22%20and%20endDate%20%3D%20%222012-12-06%22&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys?callback=angular. callbacks._0 400 (不正なリクエスト)
これを機能させる方法を知っている人はいますか?
Jquery の getJSON をこの Yahoo クエリで使用できることは知っていますが、おそらく AngularJS の $resource の方が高速で効率的です。