0

春のソーシャルFacebookAPIを見渡すと、EventOperationsは

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

イベントをFacebookに投稿します。

イベントの画像やイベントの説明など、イベントの詳細情報を投稿する方法はありますか?

4

2 に答える 2

3

メソッドを見るとcreateEvent、現在、添付ファイル(イベント画像)はサポートされていません。ただしpublish、実際にイベントを公開するためにGraphApiを呼び出します。

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に実装されている)は、RestTemplateに委任し、すべての{key、value}にフィードするため、Facebookが受け入れる準備ができている{key、value}ペアとしてすべてをサポートします通常のHTTPPOSTを介してFacebookとペアリングします。

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を拡張して、とを取り、それを追加の{key、value}としてMultiMapに追加する別のメソッドを追加できます。createEventimage nameimage file pathdata

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

したがって、このメソッドは次のようになります。

public String createEvent( String name, 
                           String startTime, 
                           String endTime,
                           String imageName,
                           String imagePath ) {   // or maybe even "File image", where you would derive the path
    requireAuthorization();
    MultiValueMap<String, Object> data = new LinkedMultiValueMap<String, Object>();
    data.set("name", name);
    data.set("start_time", startTime);
    data.set("end_time", endTime);

    data.set( "@" + imageName, "@" + imagePath );  // <<< adding this line

    return graphApi.publish("me", "events", data);
}

もちろん、これにはあなたがやりたいと思うかもしれない検証などは含まれていません。これがうまくいくと、かなり簡単に思えますが、SpringSocialに寄付/寄付することができます=>彼らはとても喜んでいます:)

于 2011-10-20T03:58:34.773 に答える
0

提供された答えは当時はおそらく正しかったのですが、今日ではこの答えは誤解を招き、間違っています。v2.1以降では、APIを介してイベントのCREATE / UPDATE/DELETEを実行することはできません。

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

于 2016-08-11T10:51:50.323 に答える