- Home ›
- Google AJAX Feed API入門 ›
- フィードの取得 ›
- HERE
フィードの取得
色々なサイトやブログではフィードを配信しています。Google AJAX Feed APIを使用することで任意のサイトが配信しているフィードを取得することが可能になります。ここではフィードの取得方法について解説します。
1.google.feeds.Feedクラス
2.取得したフィードの処理
3.サンプル
フィードを取得するにはgoogle.feeds.Feedクラスを使用します。次のコンストラクタを使ってFeedクラスのオブジェクトを作成して下さい。
google.feeds.Feed(url)
引数には取得したフィードのURLを指定します。
例えば次のように記述します。
var feed = new google.feeds.Feed("http://googlejapan.blogspot.com/atom.xml");
次にフィードの取得を行うにはFeedクラスで用意されている「load」メソッドを使います。
load(callbackFunction)
引数には取得が完了した後に呼び出される関数名を指定します。
例えば次のように記述します。
var feed = new google.feeds.Feed("http://googlejapan.blogspot.com/atom.xml"); feed.load(dispfeed); function dispfeed(result){ // 実行される処理 }
呼び出される関数をまとめて次のようにも記述できます。関数が呼び出されるのは通常一度だけなので、こちらの記述の方がよく使われるかと思います。
var feed = new google.feeds.Feed("http://googlejapan.blogspot.com/atom.xml"); feed.load(function(result){ // 実行される処理 });
関数が呼び出される時、引数に取得したフィードに関するデータが含まれるオブジェクトが渡されてきます。このオブジェクトには次の情報が含まれています。
error? xmlDocument? feed?
「error」プロパティの値はフィードを取得する時に何らかのエラーが発生した場合に含まれます。値が存在した場合、さらに「error.code」と「error.message」でHTTP スタイルのエラーコードとエラーの説明を取得することが出来ます。
「xmlDocument」プロパティの値は結果をXML形式で取得した場合に含まれます。
「feed」プロパティの値は結果をJSON形式で取得した場合に含まれます。デフォルトはJSON形式となっています。
エラーが発生していないかどうか確認し、発生していない場合は取得した形式に合わせて処理を行います。例えば次のように記述します。
var feed = new google.feeds.Feed("http://googlejapan.blogspot.com/atom.xml"); feed.load(function(result){ if (!result.error){ // エラーが発生していない場合の処理 } });
フィードの中身を処理する方法については次のページで解説します。ここではエラー処理に関する簡単なサンプルを試してみます。
それでは簡単なサンプルで試してみます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Google AJAX Feed API テスト</title> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="./js/script2_1.js"></script> </head> <body> <p>Google AJAX Feed API テスト</p> </body> </html>
google.load("feeds", "1"); function initialize(){ var feedurl = "http://googlejapan.blogspot.com/atom.xml"; var feed = new google.feeds.Feed(feedurl); feed.load(function(result){ if (!result.error){ alert("成功"); }else{ alert(result.error.code + " : " + result.error.message); } }); } google.setOnLoadCallback(initialize);
上記を実際にブラウザ見てみると次のように表示されます。
今回は実際に存在するフィードのURLを指定し、取得も問題がなかったのでエラーにはなりませんでした。
では今度は存在しないフィードのURLを指定した場合のサンプルです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Google AJAX Feed API テスト</title> <script type="text/javascript" src="https://www.google.com/jsapi"></script> <script type="text/javascript" src="./js/script2_2.js"></script> </head> <body> <p>Google AJAX Feed API テスト</p> </body> </html>
google.load("feeds", "1"); function initialize(){ var feedurl = "http://www.example.com/atom.xml"; var feed = new google.feeds.Feed(feedurl); feed.load(function(result){ if (!result.error){ alert("成功"); }else{ alert(result.error.code + " : " + result.error.message); } }); } google.setOnLoadCallback(initialize);
上記を実際にブラウザ見てみると次のように表示されます。
今回は実際に存在するフィードのURLを指定し、取得も問題がなかったのでエラーにはなりませんでした。
( Written by Tatsuo Ikura )