Facebook C# SDK, создание события с изображением

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

Вот мой код:

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 изображения и создание нового события работают нормально, но не изображение.


person user2402624    schedule 10.06.2013    source источник


Ответы (1)


Во-первых, вам нужно понять, что есть 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");
person Adam    schedule 09.07.2013