2006年12月5日 星期二

用 Flickr.NET 來上傳照片的開發步驟

http://richielin-programer.blogspot.com/2006/12/flickrnet_05.html

繼上一篇 用 Flickr.NET 搜尋下載照片的開發步驟 文章後
接下來當然得將軟體功能做得再完美一點
再來就是用 Flickr.NET 來做上傳的功能了

開發前準備
登入 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;

取得照片集和上傳資訊


上傳照片及建立照片集 (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 意見: