2009年9月26日土曜日

Google ブックマークを XML で取得

Google Bookmarks API Guide によると、

Google is a leader in the publication of its services through public interfaces such as the ones for Search, Google Maps, …. However, they have not yet published an API for Google Boomarks.

うーん、何で API が公開されていないのだろう。 (?_?) 不思議。。

上記に続いて、以下のようにリバースエンジニアリングした結果が書かれている。特定の基準で検索したい場合、以下のような URL にアクセス。

Lookup one record given a certain criteria

http://www.google.com/bookmarks/lookup?q=label:label2&output=xml

(同上より)

output=xml と付けると XML で返してくれるようだ。

試しに Google ブックマークで `hoge’ と検索したと想定して、以下の URL でアクセス。

http://www.google.com/bookmarks/lookup?q=hoge&output=xml

しかし、どうも結果が違う。 (@_@;)

 

普通に Google ブックマークで検索すると、上記 URL 中にある lookup ではなく find なので、

http://www.google.com/bookmarks/find?output=xml&q=hoge

に変更したらちゃんと表示された。

 

取得数

取得できるデータ数に関するパラメータについても説明があった。

XML Data Access

Parameters:

num=a large number (if parameter is ommited, only 25 bookmarks are returned)

(同上より)

先ほど表示できた URL の末尾に &num=100 と付けてアクセスしてみた。

http://www.google.com/bookmarks/find?output=xml&q=hoge&num=100

普通に検索したとき `hoge’ の検索が 25 件以上ある場合、100 件を上限に表示してくれるようだ。ただし、 num=3 のように小さい値にしても変化はなかった。

 

JavaScript でアクセス

上記を元に JavaScript でアクセスする。ただし、日本語で検索するときは URL エンコードするのを忘れずに。

var url = "http://www.google.com/bookmarks/find?output=xml&q=";
var q = "ほげ";
location.href = url + encodeURIComponent(q);