Sunday, April 22, 2007

Google Feed API を Salesforce へ

Google Feed APIを使用して簡単なアプリを作成.goo 天気の RSS フィードから地震情報を取得して Salesforce に読み込み,さらに,Google Map にマッピング.
goo 天気から取得できる情報は「[震源地] 石川県能登地方 [最大震度] 震度1 (2007年4月22日 21時2分頃発生) - goo 天気」といった簡単なもののみ.

この文章から地名を抜き出して,ex 石川県能登地方 -> 石川県,という風にやって,Google Map に投影.

//ソースの一部
function setMarker(address, info) {
var geocoder = new GClientGeocoder();
geocoder.getLatLng(address, function(point) {
if (!point) {
alert(address + " : は地図にプロットできませんでした");
} else {
var marker = new GMarker(point);
map.addOverlay(marker);
GEvent.addListener(marker, "click", function(){
marker.openInfoWindowHtml(splitByLineFeed(info));
});
}
});
}

address は,住所情報.ここでいうと石川県.info は RSS で取得するフルのテキスト.splitByLineFeed関数で"]"でテキストを分割して,google map のマーカーに表示.このような簡単なロジックです.

この AJAX Feed API により,次の問題点をクリアできる.

* JavaScriptはセキュリティ観点から、RSS等生成元にしか XMLHttpRequest を使用したネットワークアクセスを行うことができない。Cross Domain の問題である.これによって,他のホストからフィードを取得するようなコードを書くことができず、自ホストのサーバにプロキシを置いておいて、そのプロキシ経由でフィードを取得するなどの対処が必要であった.

* さまざまなフィードの形式が乱立している。Google AJAX Feed は,この違いをうまく吸収して,統一した形式でレスポンスを返してくれる.

これによって Salesforce もますますマッシュアップの可能性が広がりそうだ.

0 Comments:

Post a Comment

<< Home