0

我正在尝试将照片发布到 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 以外的任何值,则会出现错误。有人可以告诉如何做到这一点,或者有没有其他方法可以将图像从应用程序发布到 Facebook 墙上?

4

1 回答 1

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 中的名称。

如果仍然有任何问题,您可以按照此详细教程进行操作。

于 2013-07-11T08:13:29.100 回答