Создание события Facebook с изображением через Spring social - PullRequest
0 голосов
/ 20 октября 2011

Глядя на весенний социальный API Facebook, EventOperations предлагает

    createEvent(java.lang.String name, java.lang.String startTime, 
                                                      java.lang.String endTime)

для публикации событий в Facebook.

Есть ли способ опубликовать дополнительную информацию о событии, например, изображение и описание события?

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Глядя на метод createEvent, в настоящее время он не поддерживает вложение (изображение события).Однако он действительно вызывает GraphApi publish для фактической публикации события:

public String createEvent(String name, String startTime, String endTime) {
    requireAuthorization();
    MultiValueMap<String, Object> data = new LinkedMultiValueMap<String, Object>();
    data.set("name", name);
    data.set("start_time", startTime);
    data.set("end_time", endTime);
    return graphApi.publish("me", "events", data);
}

graphApi .publish (...) (который реализован в FacebookTemplate ) будет поддерживать что угодно как пара {ключ, значение}, которую Facebook готов принять, так как он просто делегирует RestTemplate и передает все пары {ключ, значение} в Facebook через обычный HTTP POST:

public String publish(String objectId, String connectionType, MultiValueMap<String, Object> data) {
    MultiValueMap<String, Object> requestData = new LinkedMultiValueMap<String, Object>(data);
    URI uri = URIBuilder.fromUri(GRAPH_API_URL + objectId + "/" + connectionType).build();
    Map<String, Object> response = getRestTemplate().postForObject(uri, requestData, Map.class);
    return (String) response.get("id");
}

Следовательно, вы можете расширить EventTemplate и добавить еще один метод createEvent, который бы принял image name и image file path и добавил бы его как дополнительный {ключ,value} to data MultiMap:

data.set( "@" + imageName, "@" + imagePath )

Следовательно, метод должен выглядеть примерно так:и т. д. Если у вас есть эта работа, которая кажется довольно простой, вы можете пожертвовать / внести ее обратно в Spring Social => они были бы очень рады:)

0 голосов
/ 11 августа 2016

Хотя предоставленный ответ был, возможно, правильным в то время, в настоящее время этот ответ вводит в заблуждение и неверен.Начиная с версии 2.1, вы не можете создавать, обновлять, удалять событий через API.

https://developers.facebook.com/docs/graph-api/reference/v2.1/event/

...