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 コメント:
コメントを投稿