iGoogleのガジェットつくってみた2

この間つくったスイーツランキングのソースを利用して
任天堂wii-予約受付中ランキングガジエットをつくってみた

<script src="http://www.gmodules.com/ig/ifr?url=http://hosting.gmodules.com/ig/gadgets/file/102498631954277920987/wiiRnk.xml&amp;synd=open&amp;w=320&amp;h=375&amp;title=%E4%BB%BB%E5%A4%A9%E5%A0%82Wii-%E4%BA%88%E7%B4%84%E5%8F%97%E4%BB%98%E4%B8%AD%E3%83%A9%E3%83%B3%E3%82%AD%E3%83%B3%E3%82%B0&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>

Apiやfeedを利用したガジェットを作る場合かならずクロスドメインの問題にぶち当たります。
いろいろ対応法方法がありますが、
Google Gadgets API が提供する JavaScript ライブラリの
なかで外部コンテンツの取得関数があるのでそれを使いましょう。

_IG_FetchContent(url, func)

url に指定されたコンテンツをテキスト・データとして取得します。コンテンツの取得は非同期で行われ、完了した時点で func に指定した関数が呼び出されます。

_IG_FetchXmlContent(url, func)

url に指定された XML コンテンツを DOM-Tree として取得します。コンテンツの取得は非同期で行われ、完了した時点で func に指定された関数が呼び出されます。

_IG_FetchFeedAsJSON(url, func, num_entries, get_summaries)

url に指定されたフィード(RSS または Atom)を JSON オブジェクトとして取得します。フィードの取得は非同期で実行され、完了した時点で func に指定された関数が呼び出されます。num_entries と get_summaries は省略可能なパラメータです。num_entries には取得するフィードのエントリ数を指定します。1 ~ 9 までの値が有効であり、省略時は 3 となります。get_summaries が true の場合は、エントリのサマリーも取得します(省略時は false)。

今回作ったガジエットはAmzon web serviseからRESTで返してもらったxmlを利用するため
_IG_FetchFeedAsJSON(url, func, num_entries, get_summaries)ではxmlを取得できませんでした。
なので_IG_FetchXmlContent(url, func)で取得してやりましたよ。
パースはgetElementsByTagNameをつかってノードゴニョゴニョやってかなり骨が折れたなあ。

参照サイト 紅孔雀 Google Gadgets API 入門 (4)

Tags: , , ,

Leave a Reply