2013-06-10 3 views
0

Я хочу создать событие, но я просто не знаю, как изменить изображение события. Я знал, что это очень старый вопрос, но до сих пор я не могу найти какое-либо решение, и я скоро уйду ... пожалуйста, по крайней мере, скажите мне, что это ошибки из Facebook или что-то еще?Facebook C# SDK, Создать событие с изображением

Вот мой код:

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); 

Маркер доступа, фотография URI и создать новое событие работает нормально, но не изображение.

ответ

0

Сначала вам нужно понять, что есть 2 типа изображений для мероприятия Facebook. Старая картина стиля и новая обложка.

Если вы хотите сделать изображение старого стиля, вы не укажете ему URL-адрес, вам необходимо передать его в один из аргументов аргумента изображения.

 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); 

Теперь, если вы хотите сделать обложку, единственным, что мне удалось получить работу до сих пор есть пропускание в URL-адресе параметра cover_url.

 arguments.Add("cover_url", "http://domain.com/image.jpg");