繼上一篇 用 Flickr.NET 搜尋下載照片的開發步驟 文章後
接下來當然得將軟體功能做得再完美一點
再來就是用 Flickr.NET 來做上傳的功能了
開發前準備
- 首先參考 用 Flickr.NET 搜尋下載照片的開發步驟 文章來取得 API Keys
- 到 http://www.flickr.com/services/api/keys/ 網頁可以找到該 Keys 的 Secret,就顯示在該 API Keys 的右手邊
登入 Flickr 取得 Token
- 上傳照片到 Flickr 必須先以 AP 登入以取得 Token
這個動作只要第一次執行時做一次即可
取得的 Token 可以讓 AP 以後上傳照片時使用 - 用 AuthGetFrob 及 AuthCalcUrl 函式取得驗証的 Web Url
- AuthCalcUrl 函式必須輸入 AuthLevel,來決定這個 AP 的權限是
Read Only 或 Read Write 或其它權限 - 以 Brower 連到該 Web Url 讓使用者輸入帳號密碼來驗証
- 當使用者輸入帳號密碼正確後,就可以呼叫 AuthGetToken 函式來取得 Auth 結構
Auth 結構裡包含了 Token 及 User 資訊 - 如果取得 Token 失敗,呼叫 AuthGetToken 函式會出現例外狀況,這時候就看你怎麼處理了,是結束程式? 或是再重新讓使用者輸入?
string frob = new FlickrNet.Flickr(keys, secret).AuthGetFrob();
string authUrl = new FlickrNet.Flickr(keys, secret).AuthCalcUrl(frob, FlickrNet.AuthLevel.Write | FlickrNet.AuthLevel.Read);
// 開啟 authUrl 網址讓使用者輸入帳號密碼驗証
// 驗証完畢後關閉 Brower 後檢查
FlickrNet.Auth auth = new FlickrNet.Flickr(keys, secret).AuthGetToken(frob);
string token = auth.Token;
取得照片集和上傳資訊
- 照片集的取得方式請參考 用 Flickr.NET 搜尋下載照片的開發步驟 文章
- 上傳資訊可以用 PeopleGetUploadStatus 函式來取得
- 記得這時候的 new Flickr 類別都必須帶入 Token,否則會發生例外狀況
上傳照片及建立照片集 (Photo Set) 及 Location
- 用 UploadPicture 函式可以將照片檔案上傳至 Flickr,呼叫方式直覺簡單呼叫函式後會回傳 PhotoId
- PhotosGeoSetLocation 函式可以指定某照片的經緯度座標,必須帶入 PhotoId
- PhotosetsCreate 函式用來產生新的照片集,並且必須指定一張的照片當作照片集的封面,會回傳 SetId
而上傳的第二張以後的照片如果想加入相同的照片集或加入舊的照片集
必須以 PhotosetsAddPhoto 函式來加入 - 注意以上函式都必須帶入 Token 憑証,否則會發生例外狀況
// 上傳照片
string photoId = new FlickrNet.Flickr(keys, secret, token).UploadPicture(filename, title, descript, tag, private, family, friend);
// 照片加入經緯度座標
new FlickrNet.Flickr(keys, secret, token).PhotosGeoSetLocation(photoId, latitude, longitude);
// 建立新照片集,並加入一張照片當作封面
Flickr.Photoset set = new FlickrNet.Flickr(keys, secret, token).PhotosetsCreate(title, description, photoId);
// 照片加入舊照片集
new FlickrNet.Flickr(keys, secret, token).PhotosetsAddPhoto(set.PhotosetId, photoId);
用 Flickr.NET 來開發 Flickr 應用程式真得是很直覺方便
但 Flickr.NET 提供的功能不只如此,例如 Group, Profile 等功能都是很多人會使用到的功能
等天秤我有時間再來寫這些功能的範例吧
0 意見:
張貼留言