使用Windows Phone app将照片发布到Facebook

时间:2013-06-26 17:27:58

标签: c# silverlight windows-phone-7 facebook-graph-api facebook-c#-sdk

我正在尝试将照片发布到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发布到脸谱墙?

1 个答案:

答案 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进行操作。