创建事件C#SDK Failes - 获取(OAuthException)(#324)缺少或无效的图像文件

时间:2012-03-20 13:00:46

标签: image events facebook-c#-sdk facebook-opengraph

我正在尝试使用C#SDK创建一个事件。我正在使用以下博客中的代码:

http://facebooksdk.blogspot.co.uk/2011/05/facebook-create-event.html

我使用的是从Facebook现有活动中复制的图像。

但我收到以下错误:

(OAuthException)(#324)图像文件丢失或无效

有没有人知道如何让它发挥作用?

非常感谢!

代码如下:

 public string CreateEvent()
    {
        var fb = new FacebookWebClient();
        Dictionary<string, object> createEventParameters = new Dictionary<string, object>();
        createEventParameters.Add("name", "My birthday party )");
        createEventParameters.Add("start_time", DateTime.Now.AddDays(2).ToUniversalTime().ToString(new CultureInfo("en-US")));
        createEventParameters.Add("end_time", DateTime.Now.AddDays(2).AddHours(4).ToUniversalTime().ToString(new CultureInfo("en-US")));
        createEventParameters.Add("owner", "Balaji Birajdar");
        createEventParameters.Add("description", " ( a long description can be used here..)");

        //Add the "venue" details for the event
        JsonObject venueParameters = new JsonObject();
        venueParameters.Add("street", "dggdfgg");
        venueParameters.Add("city", "gdfgf");
        venueParameters.Add("state", "gfgdfgfg");
        venueParameters.Add("zip", "gfdgdfg");
        venueParameters.Add("country", "gfdgfg");
        venueParameters.Add("latitude", "100.0");
        venueParameters.Add("longitude", "100.0");
        createEventParameters.Add("venue", venueParameters);

        createEventParameters.Add("privacy", "OPEN");
        createEventParameters.Add("location", "fhdhdfghgh");

        //Add the event logo image

        //You can add the event logo too
        FacebookMediaObject logo = new FacebookMediaObject()
        {
            ContentType = "image/jpeg",
            FileName = @"C:\DevProjects\O2\o2PriorityFB\o2PriorityFB.Web\Images\logo.jpg"
        };

        logo.SetValue(System.IO.File.ReadAllBytes(logo.FileName));
        createEventParameters["@file.jpg"] = logo;

        JsonObject resul = fb.Post("/me/events", createEventParameters) as JsonObject;
        return resul["id"].ToString();
    }

1 个答案:

答案 0 :(得分:-1)

您需要在请求中包含有效的访问令牌。另外,我建议升级到Facebook C#SDK的V6。对于您正在使用的版本,您需要将访问令牌传递到FacebookWebClient的构造函数中,如下所示:

var fb = new FacebookWebClient("valid_facebook_access_token");