摘錄幾段必須的code
1. 加入 reference " Facebook.dll" ,
下載 http://facebooktoolkit.codeplex.com/releases/view/39727
網頁中的 SDK_Binaries.zip ,
解壓縮後就可以找到
2. DesktopSession 的宣告
_appKey = ""; /// appKey 由自己在facebook 中建立的AP 中取得
_sessionSecret=""; /// sessionSecret 由自己在facebook 中建立的AP 中取得
/// setting the session
session = new DesktopSession(_appKey, _sessionSecret,
null,
true,
new List() { Enums.ExtendedPermissions.read_stream, Enums.ExtendedPermissions.publish_stream });
3. login, 會自己跳出一個 facebook 的登入頁面,若有設定紀錄的話則不會出現填帳號密碼的畫面
, 成功的話 session 中的 UserId 和 SessionKey 會填入值
session.Login();
4. 宣告 api 物件, 將登入訊息 session 傳入, 之後就可以利用 api 物件連結控制存取 facebook 的 資料
Api _api = new Api(session);
5. 範例 取得使用者名稱,取得使用者資訊 user , 這裡以 名稱為例
/// Get user information
user _user = _api.Users.GetInfo();
Console.WriteLine(_user.name);
6. 範例 上傳相片 , 這裡示範兩種方式
a. Upload
/// upload image (AlbumID 相本名稱 , caption 說明 , FileInfo 圖片檔案 )
_api.Photos.Upload("CatonTest", "Upload by Caton Test", _data);
b. UploadAsync
image type 詳細可以看 http://www.java2s.com/Open-Source/CSharp/Network-Clients/Facebook%20Developer%20Toolkit/Facebook/Rest/Photos.cs.htm
的 _mimeTypes
/// _photoRoot 檔案路徑 ex. C:\sample.bmp
/// Get image as byte array
byte[] _image = FileToByteArray(_photoRoot);
/// image type 這裡設image/gif 但我試過用 bmp 檔也可以成功上傳
/// UploadAsync(AlbumID 相本名稱 , caption 說明 , image as byte array, image type , callback function , state )
_api.Photos.UploadAsync("CatonTest", "Upload by Caton Test", _image, "image/gif", AsyncDemoCompleted, null);
UploadAsync 的 callback function
private static void AsyncDemoCompleted(photo photo, Object state, FacebookException e)
{
var actual = photo;
Console.WriteLine("upload async OK~~~~! ");
}
7. 附註
建立相簿的功能可以用 function :
_api.Photos.CreateAlbum
不過目前測試取得相簿清單的函式都會失敗, 清單都是0筆
IList albums = _api.Photos.GetAlbums();
2 則留言:
請問一下!
有辦法讓C#連接上FB塗鴉牆嗎?
請參閱 Graph API,
或參考一下下面網站的說明
http://sls.weco.net/node/10773#Graph API
張貼留言