我正在尝试将照片发布到Facebook墙上,我正在使用Facebook c#sdk。我使用了以下代码:
var fb = new FacebookClient(App.AccessToken);
var parameters = new Dictionary<string, object>
{
{ "message", "Olav is testing Facebook C# SDK" },
{ "picture", "http://download.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=facebooksdk&DownloadId=170794&Build=17672" },
{ "name", "Facebook C# SDK" },
{ "caption", "http://facebooksdk.codeplex.com/" },
{ "description", "The Facebook C# SDK helps .Net developers build web, desktop, Silverlight, and Windows Phone 7 applications that integrate with Facebook." },
{ "privacy", new Dictionary<string, object>
{
{ "value", "SELF" }
}
}
};
fb.PostAsync("me/feed", parameters);
它适用于给定的图片网址。但是,如果我希望图片是用户使用手机应用程序创建的图片,该怎么办?如果我给除url之外的图片字段赋予任何值,那么它会给出错误。有人可以告诉你怎么做,或者有没有其他方法将图像从app发布到脸谱墙?
答案 0 :(得分:1)
这不是你分享当地照片的方式。您目前正在做的是与自定义图片,标题,说明等共享链接。
要与c# sdk分享照片,请尝试以下操作:
var fb = new FacebookClient(App.AccessToken);
var parameters = new Dictionary<string, object>();
parameters["name"] = "Description for the pic";
parameters["TestPic"] = new FacebookMediaObject
{
ContentType = "image/jpeg",
FileName = "photo_name.jpg"
}.SetValue(File.ReadAllBytes(Server.MapPath("~\\Images\\photo_name.jpg")));
dynamic res = fb.Post("me/Photos", parameters);
// res.id contains the returned photo id
将Server.MapPath
替换为您的照片URI
参数TestPic
可以是您喜欢的任何内容。当您上传文件时,它将用作multipart / form-data中的名称。
如果仍有问题,您可以按照detailed tutorial进行操作。