google.feeds.Feedgoogle.feeds.Feed クラスのインスタンスは単独のフィード URL をダウンロードすることができます。
| コンストラクタ | 説明 |
|---|---|
Feed(url) |
指定されたフィード URL をダウンロードできる新しい Feed インスタンスを作成します。 |
| メソッド | 戻りタイプ | 説明 |
|---|---|---|
load(callbackFunction) |
なし |
ダウンロード完了時に指定された callbackFunction を呼び出して Google のサーバーからこのフィードをダウンロードします。指定された関数は、フィード ダウンロードの結果を表す 1 つのフィード結果引数を付けて呼び出されます。
|
setNumEntries(num) |
なし |
このフィードによってロードされるフィード エントリの数を num に設定します。デフォルトで、Feed クラスは 4 つのエントリをロードします。 |
setResultFormat(format) |
なし |
結果フォーマットを google.feeds.Feed.JSON_FORMAT、google.feeds.Feed.XML_FORMAT、google.feeds.Feed.MIXED_FORMAT のいずれかに設定します。デフォルトで、Feed クラスは JSON フォーマットを使います。
|
includeHistoricalEntries()New! |
なし |
デフォルトでは、フィードがロードされるとき、システムは指定されたフィードのキャッシュされたコピー (キャッシュされた時点のフィード コンテンツと 100% 同期しているコピー) を返します。このメソッドを呼び出すことによって、システムがキャッシュに持っている追加の履歴エントリを返すようにシステムに指示することができます。 |
google.feeds.FeedControlgoogle.feeds.FeedControl クラスのインスタンスは、複数のフィードをダウンロードして表示できるようにできています。このクラスは AJAX Search API の検索コントロール レイヤー GSearchControl と同等です。
| コンストラクタ | 説明 |
|---|---|
FeedControl() |
新しい FeedControl インスタンスを作成します。コントロールを作成した後で、ダウンロードして表示する各フィードごとに 1 回ずつ addFeed() メソッドが呼び出され、続いて draw() メソッドが呼び出されてダウンロード手順を開始し、ページに結果を描画します。 |
| メソッド | 戻りタイプ | 説明 |
|---|---|---|
addFeed(url, label) |
なし |
url によって指定されたフィードがコントロールに追加され、ヘッダー タイトルが label であるセクションに関連付けられます。注: フィードは、draw() メソッドが呼び出されるまで実際にはロードされません。feedcontrol.html サンプルは、このメソッドの使用法を示しています。
|
draw(element, opt_options?) |
なし |
以前にコントロールに追加されたフィードがすべてロードされ、ロードされるにつれてページに追加されます。element 引数には、結果のエントリを含む DOM Node を指定します。
省略可能な
feedControl.draw(
document.getElementById("feedControl"),
{
drawMode : google.feeds.FeedControl.DRAW_MODE_TABBED
});
デフォルトの drawMode はリニア モード(例: google.feeds.FeedControl.DRAW_MODE_LINEAR)です。
|
setNumEntries(num) |
なし |
このコントロールに追加される各フィードでロードされるフィード エントリの数を num に設定します。デフォルトで、FeedControl クラスは各フィードから 4 つのエントリをロードします。 |
setLinkTarget(linkTarget) |
なし |
コントロールは、表示する各エントリに対応するデフォルト HTML を生成します。HTML は、ハイパーリンクされたエントリ タイトル、作成者と公開日、エントリのコンテンツ スニペットから構成されています。このメソッドを使うと、呼び出し側からハイパーリンクされたタイトルのターゲットを指定できます。有効な値は次のとおりです。
google.feeds.LINK_TARGET_SELF です。
|
FeedControl は正しいクラス注釈を付けて HTML マークアップを吐き出します。これらのクラスは、コントロールにも、各エントリの HTML にも、容易にスタイルを設定できるように設計されています。CSS に熟練した方なら、必要に応じて FeedControl にスタイルを設定することは比較的容易です。重要なのは、基本の CSS スタイル設定は、自動でロードされる http://www.google.com/uds/css/gfeed.css で定義されているということです。続いて、意図した効果を得るために、特定のスタイル オーバーライドを定義することができます。以下にスケルトン CSS 構造を示します。Firefox ベースの firebug または DOM インスペクタを使っても便利です。
<!-- The Feed Control Class (Note: Linear Mode is Shown) -->
<div class="gfc-control">
<!-- Per Feed Container -->
<div class="gfc-resultsRoot">
<!-- Per Feed Header -->
<!-- .gfc-title holds Feed's Label -->
<div class="gfc-resultsHeader">
<div class="gfc-title"></div>
</div>
<!-- Collection of Entries -->
<div class="gfc-results">
<!-- One .gfc-result per entry -->
<div class="gfc-result">
<!-- One .gf-result per entry -->
<div class="gf-result">
<!-- Hyperlinked Entry Title -->
<div class="gf-title">
<a class="gf-title"></a>
</div>
<!-- Author (Only if entry.author is present -->
<div class="gf-author"></div>
<!-- Published Date (Only if entry.publishedDate is present -->
<div class="gf-relativePublishedDate"></div>
<!-- Snippet entry.contentSnippet -->
<div class="gf-snippet"></div>
</div>
</div>
...
<div class="gfc-result"></div>
</div>
</div>
...
<div class="gfc-resultsRoot"></div>
</div>
sidebar.html サンプルを用意しましたので参考にしてください。これは非常に単純なサンプルで、ごく単純なスタイル ルールを使っていくつかのプロパティの表示を抑制し、デフォルト マージンの一部を変更し、フォントのサイズと太さを調整しています。結果として、一般的なサイドバーに blogroll スタイルのリンク セットを表示するのに最適な、とても簡潔なフォームが得られます。スタイル設定のキーとなっているのは次の部分です:
<style type="text/css">
/**
* Set a very small font size for the control and constrain
* it's width to 225px
*
* Note: the page has a single FeedControl that
* is drawn in the <div> element whose id is "feedControl".
*/
#feedControl {
font-size: 10px;
width : 225px;
}
/**
* Suppress everything except for title
*/
#feedControl .gf-snippet,
#feedControl .gf-author,
#feedControl .gf-spacer,
#feedControl .gf-relativePublishedDate {
display : none;
}
/**
* 1em Padding at the bottom of each collection of entries
*/
#feedControl .gfc-results {
padding-bottom : 1em;
}
/**
* no padding between entries
*/
#feedControl .gfc-result {
margin-bottom : 0px;
}
/**
* Use a larger font size for section titles
*/
#feedControl .gfc-resultsHeader .gfc-title {
font-size : 110%;
}
</style>
| メソッド | 戻りタイプ | 説明 |
|---|---|---|
google.feeds.findFeeds(query, callback) |
なし |
指定されたクエリと一致するフィードのリストを返すグローバル メソッド。結果は、指定された callback 関数とは非同期に、結果オブジェクトとして提供されます。フィード検出ルックアップのサンプルは、このメソッドの使用法を示しています。 |
google.feeds.lookupFeed(url, callback) |
なし |
指定された URL に関連フィードが存在する場合、それを返すグローバル メソッド。結果は、指定された callback 関数とは非同期に、結果オブジェクトとして提供されます。Flickr フィード ルックアップのサンプルは、このメソッドの使用法を示しています。 |
google.feeds.getElementsByTagNameNS(node, ns, localName) |
NodeList |
DOM 関数 getElementsByTagNameNS のクロス ブラウザ実装。指定されたローカル名と名前空間 URI を添えて、すべての要素のノード リストを、Document ツリーの行きがけ順走査で遭遇した順に返します。 |
フィードのダウンロードが完了すると、load() メソッドは 1 件の結果を持つ関数の引数を呼び出します。結果の構造は次のとおりです:
error?codemessagexmlDocument?feed?google.feeds.Feed.JSON_FORMAT 結果フォーマットをリクエストした場合、feed 属性はフィード結果に存在します。feed 属性の構造は次のとおりです:
feed
titlelinkdescriptionauthorentries[]titlelinkcontentelem.innerHTML = entry.content を使ってこの値を表示することをおすすめします (document.createTextNode を使うのでなく)。Atom の <content> または <summary> 要素と RSS の <description> 要素に対応します。contentSnippetcontent 属性のスニペット バージョン (120 文字未満)。スニペットは HTML タグを含みません。publishedDatenew Date(entry.date) を使って日付を解析することができます。Atom の <published> 要素と RSS の <pubDate> 要素に対応します。categories[]google.feeds.Feed.XML_FORMAT 結果フォーマットをリクエストした場合、xmlDocument 属性はフィード結果に存在します。xmlDocument 属性は、フィードの完全に解析された XML Document ノードです。ブラウザに組み込まれている XML 機能(getElementsByTagName など)を使ってドキュメントにアクセスすることができます。
google.feeds.Feed.MIXED_FORMAT 結果フォーマットをリクエストした場合、feed JSON 属性と xmlDocument XML DOM 属性の両方がフィード結果に存在します。詳細は、上記の JSON ドキュメントと XML ドキュメントをご覧ください。
それらの属性のほか、JSON 結果配列内のすべての entry に、追加の xmlNode プロパティがあります。そのプロパティは、フィード XML ドキュメント内でそのエントリを表す XML 要素へのポインタです。Atom フィードの場合、xmlNode はエントリの <entry> 要素を参照しています。RSS フィードの場合、xmlNode はエントリの <item> 要素を参照しています。
フィード クエリが完了すると、findFeeds() メソッドは 1 件の結果を持つコールバック関数の引数を呼び出します。結果の構造は次のとおりです。
error?codemessageentries[]titlelinkcontentSnippeturlフィード ルックアップが完了すると、lookupFeed() メソッドは 1 件の結果を持つコールバック関数の引数を呼び出します。結果の構造は次のとおりです。
error?codemessageurl
Flash のデベロッパーや、JavaScript を使用しない環境で AJAX Feed API にアクセスする必要のあるデベロッパーに対して、API ではシンプルな RESTful インターフェースを公開しています。どの場合でも、サポートされるメソッドは GET で、応答の形式は、ステータスコードが埋め込まれた JSON エンコードされた結果です。このインターフェースを使用するアプリケーションは、既存のすべての利用規約に従うものとします。特に注意する必要があるのは、要求において自身を正しく識別することに関連する部分です。アプリケーションでは、有効かつ正確な HTTP referer ヘッダーを常に要求に含める必要があります。さらに、必須ではありませんが、それぞれの要求に有効な API キーを組み込んでください。キーを提供することで、アプリケーションにより二次的な識別構造が提供され、問題が発生した場合のコンタクトに使用できます。詳細は、API キーを登録することのメリットを参照してください。
コア Javascript インターフェースと同様に、このインターフェースは、標準 CGI 引数と、メソッド固有の CGI 引数の両方が混合したものを含む統一 URL を介して表示されます。アプリケーションは、自由な http スタックを使うことができます。要件は、すべての必要な CGI 引数を持つ、正しく構築された URL を構築できること、アプリケーションを正確に識別する http referer ヘッダーを送信すること、および JSON エンコードされたレスポンスを処理できることだけです。
各Feed API メソッドには、標準 URL を介してアクセスします。次の表に、各メソッドにアクセスするために使われる URL を示します。
| サーチャー | 基本 URL |
|---|---|
| ロード フィード | http://ajax.googleapis.com/ajax/services/feed/load |
| 検索フィード | http://ajax.googleapis.com/ajax/services/feed/find |
| ルックアップ フィード | http://ajax.googleapis.com/ajax/services/feed/lookup |
各リクエストには、標準 URL 引数と、メソッド固有の引数 (省略可能) が含まれます。このセクションでは、すべてのメソッドを通じて統一されていて実質的に同一のセマンティック情報を、各メソッドに伝達する標準引数を説明します。引数を省略できる場合もあります。その場合は、引数名の後に ? をつけて示します。すべての場合に、CGI 引数の値は正しくエスケープする必要があります(たとえば Javascript の encodeURIComponent() メソッドと機能的に同等な仕組みを介して)。
次の表に、標準 URL 引数を示します。その次に、メソッド固有の引数を強調する追加のセクションがあります。
| 引数 | 例 | 説明 |
|---|---|---|
| q | q=Paris%20Hilton |
この引数は、メソッドに渡されるクエリ語句を指定します。load および lookup メソッドでは、この引数の値は正しくエスケープされます (たとえば &q=http%3A%2F%2Fwww.digg.com%2Frss%2Findex.xml)。find メソッドでは、値は一致するフィード URL のコレクションを検索するために使われる検索式です。
|
| v | v=1.0 |
この引数は、プロトコルのバージョン番号を指定します。現在有効な値は、次の値のみです: 1.0
|
| hl? | hl=fr |
引数 (省略可能) は、リクエストを行うアプリケーションのホスト言語を指定します。この引数が存在しない場合、システムは Accept-Language http ヘッダーの値に基づいて値を選択します。このヘッダーが存在しない場合、値は en と仮定されます。
|
| key? | key=your-key | この引数(省略可能)は、アプリケーションのキーを指定します。キーを指定する場合、そのキーは有効で、あなたのサイトに関連付けられており、渡された referer ヘッダーに対して検証済みである必要があります。キーを指定する利点は、あなたのアプリケーションに問題が発生した場合に、Google があなたを識別し、連絡できることです。キーがない場合でも Google は Google 側で同様の適切な手段をとりますが、あなたに連絡を取ることはできません。キーを渡すことが、あなたにとって最適です。 |
| callback? | callback=foo |
この引数(省略可能)は標準レスポンス フォーマットを変更します。指定された場合、システムは JSON エンコードされたシンプルなオブジェクトを作成せず、Javascript 関数呼び出しレスポンスを作成します。このレスポンスでは callback の値が、レスポンスで呼び出される関数の名前を指定します。
callbackFunction({
"responseData" : {
"feed" : {}
},
"responseDetails" : null | string-on-error,
"responseStatus" : 200 | error-code
})
|
| context? | context=bar |
この引数(省略可能)は context 引数に関連しています。この引数を一緒に指定すると、context の値によって、callback と関連のある標準の応答形式が置き換えられます。新しい形式は次のようになります:
callbackFunction(
contextValue, // the context arg value
responseObject, // the method result
responseStatus, // 200 on success, non-200 on failure
errorDetails) // error string for non-200 response
|
前のセクションで少し触れたように、応答形式には 2 つの主要なバリエーションがあります。callback 引数と context 引数を指定し兄場合、応答形式は、以下に示す 3 つのスニペットに類似しているシンプルな JSON オブジェクトです:
{
"responseData" : {
"feed" : {}
},
"responseDetails" : null | string-on-error,
"responseStatus" : 200 | error-code
}
{
"responseData" : {
"query" : query-string,
"entries" : []
},
"responseDetails" : null | string-on-error,
"responseStatus" : 200 | error-code
}
{
"responseData" : {
"query" : query-value -e.g.- original-url,
"url" : primary-url-for-that-page
},
"responseDetails" : null | string-on-error,
"responseStatus" : 200 | error-code
}
上の JSON フラグメントで、responseData プロパティが、feed オブジェクト、または query プロパティと entries 配列、または query プロパティと url プロパティを含んでいることに注意します。このプロパティで返されるコンテンツは、アクセスされるFeed API メソッドの関数です。詳細情報は、結果フォーマットの説明を再確認してください。ドキュメントのこの部分では、省略可能な error オブジェクトが説明されていることに注意してください。URL ベースのプロトコルを使う場合、error プロパティは決して存在しません。代わりに、responseStatus プロパティと responseDetails プロパティが使われます。responseStatus プロパティは、成功した場合は 200 の値を含み、失敗した場合は 200 以外の http エラー ステータス コードを含んでいます。障害があった場合、responseDetails に診断文字列が含まれます。
アプリケーションで callback 引数のみを指定し、context 引数を指定しないと、同じオブジェクトを受け取る可能性があります。これは、指定した callback が最初の引数としてアプリケーションに渡された場合にのみ発生します。
callbackFunction({
"responseData" : {
"query" : query-value -e.g.- original-url,
"url" : primary-url-for-that-page
},
"responseDetails" : null | string-on-error,
"responseStatus" : 200 | error-code
})
アプリケーションが callback 引数と context 引数の両方を指定すると、レスポンスは JavaScript プロシージャ呼び出しとしてエンコードされます。この動作モードでは、callback の値はプロシージャ呼び出しのターゲットになり、context の値が最初の引数として渡され、responseData の値が 2 番目の引数として上から渡され、レスポンス ステータスが 3 番目の引数として渡され、最後の引数は null または診断文字列です。
foo('bar', {
"feed": {
"title": "Digg",
"link": "http://digg.com/",
"author": "",
"description": "Digg",
"type": "rss20",
"entries": [
{
"title": "The Pirate Bay Moves Servers to Egypt Due to Copyright Laws",
"link": "http://digg.com/tech_news/The_Pirate_Bay_Moves_Servers_to_Egypt_Due_to_Copyright_Laws",
"author": "",
"publishedDate": "Mon, 31 Mar 2008 23:13:33 -0700",
"contentSnippet": "Due to the new copyright legislation that are going ...",
"content": "Due to the new copyright legislation that are going to take...",
"categories": [
]
},
{
"title": "Millions Dead/Dying in Recent Mass-Rick-Rolling by YouTube.",
"link": "http://digg.com/comedy/Millions_Dead_Dying_in_Recent_Mass_Rick_Rolling_by_YouTube",
"author": "",
"publishedDate": "Mon, 31 Mar 2008 22:53:30 -0700",
"contentSnippet": "Click on any \u0022Featured Videos\u0022. When will the insanity stop?",
"content": "Click on any \u0022Featured Videos\u0022. When will the insanity stop?",
"categories": [
]
},
...
]
}
}
, 200, null)
ロード フィード メソッドは、次の表に示すいくつかの省略可能な引数をサポートします:
| 引数 | 説明 |
|---|---|
| num? |
この引数(省略可能)は、q で指定されたフィードからロードするエントリの数を指定します。-1 の値は、サポートされているエントリ数の最大値を示します。本ドキュメント執筆時点では 100 です。この引数が指定されない場合、値は 4 と仮定されます。
|
| output? |
この引数(省略可能)は、responseData プロパティの出力フォーマットを決定します。
|
| scoring? |
デフォルトでは、フィードがロードされるとき、システムは指定されたフィードのキャッシュされたコピー (キャッシュされた時点のフィード コンテンツと 100% 同期しているコピー) を返します。scoring を h の値に設定することによって、システムがキャッシュに持っている追加の履歴エントリを返すようにシステムに指示することができます。
|
検索フィード メソッドには追加の引数はありません。すべての引数が上の表に記載されています。
ルックアップ フィード メソッドには追加の引数はありません。すべての引数が上の表に記載されています。