玩玩Picasa Web Albums 系列一

玩玩Picasa Web Albums 系列一

前陣子,Google公佈Picasa Web API,
在不寫程式的情況下,我們先來試試怎麼手動取得相簿及照片的資料,

在開發手冊上說了,
我們可以透過以下的連結取得相簿資料的Feed

http://picasaweb.google.com/data/feed/api/user/ userID ?kind= kinds

其中,userID需要輸入你要瀏覽的使用者帳號,
而kinds則輸入"album",或是輸入你所定義的tag的名稱.
因為我們現在是要瀏覽相簿,
所以我們輸入album,
假如以我的相簿為例,那連結就會如下:

http://picasaweb.google.com/data/feed/api/user/ajunlee?kind=album

如此你就可以取得一份ATOM格式的相簿資料,當然裡頭還包含了一些google定義給相簿用的namespace.

取得相簿資料後,
在來就是要去得照片資料,
而取得照片資料的方式有兩種,一種是透過相簿的名稱,一種是透過相簿的ID,
連結語法分別如下:

http://picasaweb.google.com/data/feed/api/user/ userID /album/ albumName ?kind= kinds

http://picasaweb.google.com/data/feed/api/user/ userID /albumid/ albumID ?kind= kinds

當然.其中的userID就是使用者帳號,
albumName是相簿名稱,
albumID是相簿的ID,
而kinds可以是"photo"或是tag的名稱,
因為我們要取得是相簿中所有的相片,所以kinds我們就是使用photo,
在來說一下albumName,
假如你的相簿名稱只有英文跟數字的話,
大致上你直接使用你命名的名稱就可以了,
但是如果你的名稱中有中文的話,
那就相簿名稱就不會是你所訂的,
像我的相簿中,有個叫做"票卡集",但名稱卻是"mBqVVH",
而另一個相簿是"20040808獨立山",而相簿名稱則直接去掉了中文的部份,變成"20040808"
不過如果你是抓他的feed的話,倒就不用擔心這個,
因為這些資料都在feed中,
所以要取得相簿中的照片資料,以我的相簿為例,我們可以透過下面兩個連結語法來取得.

http://picasaweb.google.com/data/feed/api/user/ajunlee/albumid/5042744358844696305?kind=photo

http://picasaweb.google.com/data/feed/api/user/ajunlee/album/20070206?kind=photo

而這兩個的結果也會是相同的.

因為到目前為止,並沒有使用到GData登入認證的部分,
所以我們所取得的資料只會有設定為public的相簿資料.
而private的資料需要使用Google Account Authentication取得認證成功的Token後才能取得.

今天就先說到這,下次再來說說其他的功能.

下面是我用c#寫的一個小範例...輸入帳號後.瀏覽公開的相簿及照片.不過沒有做錯誤處理...
所以如果沒有該帳號的話應該會有問題...

http://vip.blueshop.com.tw/ajun/albumlist.aspx

ps.目前只有提供Java版的Library,還沒有.Net版的,所以如果是.Net的使用者要玩的話,可能要自己寫,不然就是在等會...
從討論區看來,是因為.Net沒有內建對於MIME的支援....所以可能要再等一陣子了...