Flickr 是一個廣為使用的網路相簿
其功能和普及性相信不用天秤我多說什麼了
因為其 Flickr API 各開發平台及功能齊全,也產生許多很好玩的應用程式
這次介紹一下 Flickr 在 .NET Framework 下的 API 開發步驟
官網: Flickr.NET
而用 Flickr.NET 搜尋、下載照片是不須要使用者輸入帳號登入
而且程式開發也最簡單直覺,以下是天秤我寫的開發步驟
開發前準備
- 首先要開發 Flickr 應用程式必須先有一組 Flickr API Keys
當然你得先是 Flickr 的會員,可以到 Flickr 註冊免費會員
- 到 http://www.flickr.com/services/api/key.gne 申請一組 Keys
- 到 http://www.flickr.com/services/api/keys/ 管理你的 Flickr API Keys,在該 Keys 下方按 Edit key details 頁後
選擇 Desktop Application 後儲存
這裡的 Web Application 和 Desktop Application 不知有何不同
反正就選 Desktop Application 就是了
- 開發工具可以使用 Visual Studio.NET 2003 或 Visual Studio 2005
可以到 Microsoft 下載免費的 Visual C# 2005 Express Edition 來用 - 新增 C# 專案,把 Flickr.NET 加入參考
- 大部份的函式或結構都是在 FlickrNET.Flickr 這個類別中,以下範例也都是如此
搜尋 Tag 照片
- Flickr.NET 搜尋可以用 PhotoSearchOptions 結構帶入 Tags 參數
並以 PhotosSearch 函式來搜尋
其中 keys 是上一步申請的 Keys
FlickrNet.PhotoSearchOptions options = new FlickrNet.PhotoSearchOptions();
options.Tags = "Taiwan";
FlickrNet.Photos photos = new FlickrNet.Flickr(keys).PhotosSearch(options);
- 回傳的 Photos.PhotoCollection 就是找到的照片陣列了
搜尋指定使用者照片
- 搜尋使用者照片必須先找到使用者的 UserId
用 PeopleFindByUsername 函式依 UserName 或是
用 PeopleFindByEmail 函式依 Email 來找使用者
FlickrNet.FoundUser user = new FlickrNet.Flickr(keys).PeopleFindByUsername(名稱);
FlickrNet.FoundUser user = new FlickrNet.Flickr(keys).PeopleFindByEmail(Email);
- FoundUser 結構中的 UserId 就是了
- 再將 UserId 帶入 PhotoSearchOptions 結構的 UserId 欄位
- 以上一步驟的方式搜尋即可
搜尋指定使用者的照片集 (Photo Set)
- 照片集的搜尋方式和之前不太一樣,首先必須依 UserId 來找出該使用者所有的照片集
FlickrNet.Photosets sets = new FlickrNet.Flickr(keys).PhotosetsGetList(user.UserId);
- 再將該照片集 PhotosetId 用 PhotosetsGetPhotos 函式取得照片的陣列即可
FlickrNet.Photoset set = sets.PhotosetCollection[0];
FlickrNet.Photo[] photos = new FlickrNet.Flickr(keys).PhotosetsGetPhotos(set.PhotosetId);
下載照片並顯示
- FlickrNet.Photo 結構裡有各種尺寸照片的 Url 和 Web Url,如 ThumbnailUrl 就是小尺寸照片的 Url
- 可以用 DownloadPicture 函式並帶入照片 Url 來下載照片
- 再用下載回傳的 IO Stream 來產生 Bitmap 即可顯示在視窗上了
System.IO.Stream io = new FlickrNet.Flickr(keys).DownloadPicture(photos[0].ThumbnailUrl);
System.Drawing.Bitmap image = new System.Drawing.Bitmap(io);
Flickr API 幾乎將所有 Flickr 功能都提供了
而 Flickr.NET 也以 .NET 簡單乾淨的語法將 Flickr API 精髓都表現出來
天秤這裡介紹只是最基本的運用
當然 Flickr.NET 還有其它更進階的功能,就等有空時再來補上了
1 意見:
Web Application就是像是Flickr、YouTube這種網站應用程式
而Desktop Application則是Friendly.Flickr、瀏覽器這種應用程式
感謝您撰寫的開發日誌,讓我得以了解到Flickr API該怎樣運用
謝謝^^
CFC --
張貼留言