經過可以login,攞data後,就到了upload的部份了,其實在facebook經api upload 野都係一個Post request,也不是很難寫的,只要你知道你要的url就可以了,當然post唔同的東西就可能會有唔同的url了,詳細都係要睇番facebook api 的文件呢!
在這裡我就先用上api 入面的Post function 先create 一個相薄
由於facebook 的頁面好多也是由id 來access 的, 所以有了這個albumID, 就等於你已經可以存取該相簿內的東西了, 之後就可以把相upload 上去了
首先create 一個image 的object吧,用作存好相的資料
之後就可以使用之前得到的ID 建立出相冊的url
最後再使用post的function 把相片上傳就可以了, 當然因為上傳相片是一個比較大及花時間的動作, 這次就用上了async的method呢,就可以輕鬆地把相片上傳了 :)
當然la, 使用上async的方法如果要回接你要的result是要自行加上action 的, 方法可以參考上一篇筆記呢
注意post 係一個sync 的function 所以係會hold 住等facebook 個邊有feedback 才會繼續的, 所以會有一點個app好似hang 了的感覺呢, 所以如果係要做一些大型的upload, 就最後還是用上async 的function吧!
var albumDetails = new Dictionary<string, object>(); albumDetails.Add("name", album_name); albumDetails.Add("description", album_desc); // create the new photo album dynamic fbResult = fb.Post("/me/albums", albumDetails); // get the albumID for photo upload albumID = fbResult.id;
由於facebook 的頁面好多也是由id 來access 的, 所以有了這個albumID, 就等於你已經可以存取該相簿內的東西了, 之後就可以把相upload 上去了
首先create 一個image 的object吧,用作存好相的資料
var photoDetails = new Dictionary<string, object>(); FacebookMediaObject img = new FacebookMediaObject { ContentType = "image/jpeg", FileName = pd.FileName }; img.SetValue(File.ReadAllBytes(pd.PictureBox.ImageLocation)); photoDetails.Add("message", photo_desc); photoDetails.Add("source", img);
之後就可以使用之前得到的ID 建立出相冊的url
string album_path = "/" + this._albumID + "/photos";
最後再使用post的function 把相片上傳就可以了, 當然因為上傳相片是一個比較大及花時間的動作, 這次就用上了async的method呢,就可以輕鬆地把相片上傳了 :)
_fb.PostAsync(album_path, photoDetails);
當然la, 使用上async的方法如果要回接你要的result是要自行加上action 的, 方法可以參考上一篇筆記呢
0 回應:
Post a Comment