ここまで説明してきたように、Liveガジェットにおけるネットワーク通信は、AJAXのXMLHttpRequestオブジェクトを使うものと、ほとんど変わらない。
ネットワークプロキシにより、Windows Liveが中継して送信するため、クロスドメインの問題がなく、どのサイトとでも通信できるため、Webサービスを呼び出しやすいはずだ。
しかし反面、ネットワークプロキシが使われるということは、Webサーバ側から見れば「ブラウザが接続している」のではなく、「Windows Liveが接続している」ように見える。このため、Webサービスによっては、問題となるケースがあるかもしれない。
特に汎用のWebサービスではなくて、AJAXから呼び出されることを目的に作られたWebサービスの場合には、幾つかの注意が必要だ。
例えば、WebサービスがUser-Agentヘッダを見て条件分けしている場合やクライアント側のIPを調べているときには、Cookieなどを使って認証やセッション管理しているとWindows Live経由では動作しない可能性がある。
実際には、そのような処理をするWebサービスは皆無に近いとは思うが、もし動かないときには、「Windows Liveから接続されている」ということを思い出してほしい。
最後に、RSSフィード処理について説明しよう。
RSSフィードはXML形式のデータであるから、これまで説明してきたように、ネットワークリクエストオブジェクトを使うことで、Liveガジェットから受信できる。
このときに問題となるのが、複雑になりがちなRSSフィードの解析処理だ。
しかし、Liveガジェットの場合にはRSSフィードの解析処理を心配する必要はない。なぜならWindows Liveでは、RSSフィードを解析するためのクラスが提供されているからだ。
ただし、原稿執筆時点の「Windows Liveガジェット SDKベータ版 0.6」では(関連リンク)、RSSフィードを解析するためのクラスについて詳細な解説がない。しかし、SDKのサンプルには、「RssGadgets」というRSSフィード処理のためのサンプルが含まれており、「Start.Parser.ParseRssResponse」というメソッドで、RSSフィードを処理できることが確認できる。
そこで以下、サンプルから判断できる範囲で、RSSフィードの処理方法を説明しておこう。ただし、RSSフィード処理は、ドキュメント化されていないという意味において、今後、正式版になった場合に実装方法が変更される可能性があることにも注意が必要だ。
実際に、Start.Parser.ParseRssResponseメソッドを使ったRSSのパース例をリスト7に示した。
Copyright © ITmedia, Inc. All Rights Reserved.