2011-03-07 69 views
0

如何使用Facebook標記照片c#sdk。Facebook C#SDK使用標記上傳照片

這是我的代碼(上傳圖片):

var fbApp = new FacebookClient(Session["xAccessToken"].ToString()); 
    string xfilename = MergedCombinedImage.ImageUrl; 
    xfilename = xfilename.Replace("images/temp/", ""); 
    var fbUpl = new Facebook.FacebookMediaObject 
    { 
     FileName = xfilename, 
     ContentType = "image/jpg" 
    }; 

    var bytes = System.IO.File.ReadAllBytes(Server.MapPath(MergedCombinedImage.ImageUrl)); 
    fbUpl.SetValue(bytes); 
    var photoDetails = new Dictionary<string, object>(); 
    photoDetails.Add("message", "test"); 
    photoDetails.Add("image", fbUpl); 
    var fbResult = fbApp.Post(@"/" + albumID + @"/photos", photoDetails); 
    var result = (IDictionary<string, object>)fbResult; 
    var photoID = result["id"]; 

感謝

pongpang

回答

1

要標記,你可以做到這一點(一個簡單的爲例):

private const string ExtendedPermissions = "user_about_me,user_photos,publish_stream"; 

[HttpPost] 
[FacebookAuthorize(Permissions = ExtendedPermissions, LoginUrl = "/Home/LogOn?ReturnUrl=~/Home")] 
public ActionResult MensagemPost(string message) 
{ 
    var fb = new FacebookWebClient(); 
    dynamic me = fb.Get("me"); 

    string friendId_1 = // get the first one friend id 
    string friendId_2 = // get the second one friend id 

    var tags = new[] 
    { 
     new { tag_uid = friendId_1, x = 20, y = 20 }, 
     new { tag_uid = friendId_2, x = 40, y = 40 }, 
     new { tag_uid = (string)me.id, x = 60, y = 60 } 
    }; 

    dynamic parameters = new ExpandoObject(); 
    parameters.message = message; 
    parameters.tags = tags; 
    parameters.url = "http://1.bp.blogspot.com/-evheT51sfeM/TlO_wZ8YDqI/AAAAAAAAA8I/fjlg0G8AgMY/s1600/The-best-top-hd-desktop-naruto-shippuden-wallpaper-naruto-shippuden-wallpapers-hd-11.jpg"; 

    dynamic result = fb.Post("me/photos", parameters); 

    return RedirectToAction("Index", new { success = true }); 
} 
相關問題