Facebook graph api Facebook C#SDK,用图片创建事件

Facebook graph api Facebook C#SDK,用图片创建事件,facebook-graph-api,facebook-events,Facebook Graph Api,Facebook Events,我想创建一个活动,但我不知道如何更改活动图片。我知道这是一个很老的问题,但我仍然找不到任何解决办法,我很快就会放弃。。。请至少告诉我这是Facebook上的bug还是其他什么 这是我的密码: Facebook.FacebookClient fb = new Facebook.FacebookClient(accessToken); Dictionary<string, object> ev = new Dictionary<string, object>(); ev.Ad

我想创建一个活动,但我不知道如何更改活动图片。我知道这是一个很老的问题,但我仍然找不到任何解决办法,我很快就会放弃。。。请至少告诉我这是Facebook上的bug还是其他什么

这是我的密码:

Facebook.FacebookClient fb = new Facebook.FacebookClient(accessToken);
Dictionary<string, object> ev = new Dictionary<string, object>();
ev.Add("name", model.name);
ev.Add("start_time", model.start_time);
ev.Add("end_time", model.end_time);
ev.Add("description", model.description);
ev.Add("location", model.location);
ev.Add("privacy_type", model.privacy_type);
ev.Add("is_date_only", model.is_date_only);
//ev.Add("picture", "@https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg");  //NOT WORKING
//ev.Add("source", "@https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg");  //NOT WORKING
//ev.Add("picture", HttpUtility.UrlEncode("@https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //NOT WORKING
//ev.Add("source", HttpUtility.UrlEncode("https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //NOT WORKING
//ev.Add("picture", model.picture);     //NOT WORKING               

object EventId = fb.Post("/me/events", ev);
Dictionary<string, string> p = (new JavaScriptSerializer()).Deserialize<Dictionary<string, string>>(EventId.ToString());
Dictionary<string, object> pic = new Dictionary<string, object>();
//pic.Add("source", model.picture);  //NOT WORKING
//pic.Add("picture", HttpUtility.UrlEncode("https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //NOT WORKING
//pic.Add("source",HttpUtility.UrlEncode("https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //NOT WORKING
object objPicture = fb.Post("/" + p["id"] + "/picture", pic);
Facebook.Facebook客户端fb=新建Facebook.Facebook客户端(accessToken);
字典ev=新字典();
ev.添加(“名称”,型号名称);
ev.添加(“开始时间”,型号:开始时间);
ev.添加(“结束时间”,型号:结束时间);
ev.添加(“说明”,型号说明);
电动汽车添加(“位置”,型号位置);
ev.Add(“隐私类型”,型号.隐私类型);
ev.Add(“仅限日期”,仅限型号);
//ev.添加(“图片”@https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg");  //不起作用
//ev.添加(“来源”@https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg");  //不起作用
//ev.Add(“图片”,HttpUtility.UrlEncode(“@https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //不起作用
//ev.Add(“源”,HttpUtility.UrlEncode()https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //不起作用
//电动汽车添加(“图片”,型号图片)//不起作用
对象EventId=fb.Post(“/me/events”,ev);
字典p=(新的JavaScriptSerializer());
Dictionary pic=新字典();
//图.添加(“来源”,型号.图片)//不起作用
//pic.Add(“picture”,HttpUtility.UrlEncode()https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //不起作用
//pic.Add(“源”,HttpUtility.UrlEncode()https://fbcdn-photos-g-a.akamaihd.net/hphotos-ak-ash3/c0.0.50.50/p50x50/601514_10151470263757778_629077232_s.jpg"));  //不起作用
objectobjpicture=fb.Post(“/”+p[“id”]+“/picture”,pic);

访问令牌、图片URI和创建新事件工作正常,但图片不正常

首先,你需要意识到Facebook活动有两种类型的图片。老照片和新封面照片

如果您想制作旧式图片,而不给它一个url,则需要将其中一个参数中的数据传递给picture参数

        var arguments = new Dictionary<string, object>();

        var mediaSource = new FacebookMediaObject
        {
            FileName = "image.jpg",
            ContentType = "image/jpeg"
        };

        mediaSource.SetValue(webClient.DownloadData(url));

        arguments.Add("picture", mediaSource);


        Object value = client.Post(String.Format("/{0}/events/", "facebook_pageId_here"), arguments);
        var arguments = new Dictionary<string, object>();

        var mediaSource = new FacebookMediaObject
        {
            FileName = "image.jpg",
            ContentType = "image/jpeg"
        };

        mediaSource.SetValue(webClient.DownloadData(url));

        arguments.Add("source", mediaSource);

        Object value = client.Post(String.Format("/{0}/picture/", "event_id_here"), arguments);
        arguments.Add("cover_url", "http://domain.com/image.jpg");