ajaxを使って、外部feedを取得したいのですが、same-originポリシーでそれは無理。
で、解決策としてサーバーサイドを使う必要があるのですが、毎回、毎回、これだと面倒。
なんか方法がないかなーっと模索したところ、ありました。
Google Feed API
さっそく、iTunesランキングをゲットするコードを作りました。
<html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript" src="https://www.google.com/jsapi?key=IN_YOUR_KEY"></script> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> <script type="text/javascript"> jQuery.extend({ init:function(){ var feed = new google.feeds.Feed( "http://itunes.apple.com/us/rss/topsongs/limit=100/xml" ); feed.setNumEntries(100); feed.setResultFormat(google.feeds.Feed.JSON_FORMAT); feed.load(function(xml){ console.log(xml) }); } }); google.load("feeds", "1"); google.setOnLoadCallback(jQuery.init); </script> </head> <body> </body> </html> |
ポイントは、setNumEntriesメソッドを使わないと、デフォルトで4件取得してしまうところ。
今回は、100件なので、setNumEntries(100)としました。
また返り値を、JSONにしたかったので、google.feeds.Feed.JSON_FORMATキーを引数としてsetResultFormat()にセットしました。
これで、サーバーサイド言語を使わずに、実装できるようになったので、より早くWEBページを作れそうです。
0 コメント:
コメントを投稿