ユーザーが作成したすべてのウォッチ リストのリストを取得して、カスタム MVC4 アプリケーションに表示したいと考えています。
ウォッチリスト ID を知っていれば、ユーザーを認証し、ウォッチリスト フィードを取得することもできました。このアプリケーションでは、ユーザーが既存のウォッチリストを選択してフィードを表示するようにします。
ユーザーが作成したすべてのウォッチ リストのリストを取得して、カスタム MVC4 アプリケーションに表示したいと考えています。
ウォッチリスト ID を知っていれば、ユーザーを認証し、ウォッチリスト フィードを取得することもできました。このアプリケーションでは、ユーザーが既存のウォッチリストを選択してフィードを表示するようにします。
Stocktwits のどこからともなく、このドキュメントが非常に役立つことがわかりました。
http://stocktwits.com/developers/docs/signin
フローを開始したら、AJAX 呼び出しを次のようなものに置き換えます。
$.ajax({
url: "https://api.stocktwits.com/api/2/watchlists.json?callback=?",
dataType: 'jsonp',
timeout: 5000,
data:{ access_token: token},
success: function(data) {
if (data) {
callback(data);
}},
error: function(error){
//handle error
}
これでウォッチリストができました。その後、取得したデータを使用するコールバック関数を作成します。
var getWatchlist = function(data){
if(!data) return undefined; //Sanity checks are always good!
if(data.response == undefined) return undefined;
var postInfo = []; //A list to put our results on!
if(data.response.status == "401") { //Represents a bad token. Handle and return
return;
}
var watchlistData = data.watchlists;
for (var i=0; i<watchlistData.length; i++)
{
var watchlistId = watchlistData[i].id;
var tempInfo = {watchlistId};
postInfo.push(tempInfo);
}
return postInfo; //All of your watchlists!
}
ここから、ここで説明されている同様の関数を使用します。
http://stocktwits.com/developers/docs/api#watchlists-show-docs
$.ajax({ //Note you have to put in the watchlist_id
url: "https://api.stocktwits.com/api/2/watchlists/show/"+watchlist_id+".json?callback=?",
dataType: 'jsonp',
timeout: 5000,
data:{ access_token: token},
success: function(data) {
if (data) {
callback(data);
}},
error: function(error){
//handle error
}
別のコールバックを使用して、同じ種類のことをもう一度行います。
var getWatchlistData = function(data){
if(!data) return undefined; //Sanity is still important, for some....
if(data.response == undefined) return undefined;
var postInfo = []; //A list to put our results on!
if(data.response.status == "401") { //Represents a bad token. Handle and return
return;
}
var watchlistSymbolsData = data.watchlists.symbols;
for (var i=0; i<watchlistSymbolsData.length; i++)
{
var watchlistTicker = watchlistData[i].symbol;
var watchlistId = watchlistData[i].id;
var tempInfo = {watchlistTicker, watchlistId}; //You'll probably want some more data here
postInfo.push(tempInfo);
}
return postInfo; //All of your tickers with corresponding ids!
}
AJAX を呼び出す関数を作成し、それらの get 関数の 1 つをコールバックとして渡すだけで、必要なものを表示できるようになります。