1

私はコードの下で実行しているとき、私は小さな画像しか得ていません。Spring Social Facebook | feedOperationsから大きな写真を入手

PagingParameters recordCount = new PagingParameters(2000, null, null, null); 
PagedList<Post> posts = facebook.feedOperations().getPosts(recordCount); 

Mavenのバージョン:

<dependency 
<groupId>org.springframework.social</groupId> 
<artifactId>spring-social-facebook</artifactId> <version>2.0.3.RELEASE</version> 
</dependency> 

はどのようにして給紙動作のための完全な画像を得ることができます。このためのオプションはありますか?

+0

春社会のFacebook |ユーザーの投稿やページから完全な画像を取得します。 –

答えて

0

他の人がこれを助けることができるので、私はこの質問のロットと投稿ソリューションを分析します。 post.getExtraData()。get( "full_picture")を使用して取得できる余分なデータの一部として、完全な画像を返します。コードスナップショットは次のとおりです

public PagedList<Post> getPostByAccountId(final String accountId) { 
    LOGGER.debug("facebook accountId: ", accountId); 
    FacebookTemplate facebook = new FacebookTemplate("<access token>"); 

    String[] ALL_POST_FIELDS = { "id", "actions", "admin_creator", "application", "caption", "created_time", "description", "from", "icon", "is_hidden", "is_published", 
      "link", "message", "message_tags", "name", "object_id", "picture", "full_picture", "place", "privacy", "properties", "source", "status_type", "story", "to", 
      "type", "updated_time", "with_tags", "shares" }; 

    URIBuilder uriBuilder = URIBuilder.fromUri(facebook.getBaseGraphApiUrl() + "me/posts"); 
    uriBuilder = uriBuilder.queryParam("limit", String.valueOf(2000)); 
    uriBuilder.queryParam("fields", org.springframework.util.StringUtils.arrayToCommaDelimitedString(ALL_POST_FIELDS)); 
    URI uri = uriBuilder.build(); 

    JsonNode jsonNode = (JsonNode) facebook.getRestTemplate().getForObject(uri, JsonNode.class); 
    PagedList<Post> posts = new DeserializingPosts().deserializeList(jsonNode, null, Post.class); 
    return posts; 
} 

投稿からfull_pictureをフェッチするには

String picture = post.getPicture(); 
picture = post.getExtraData().get("full_picture") != null ? post.getExtraData().get("full_picture").toString() : picture; 

deserializingObjectクラスの詳細:

public class DeserializingPosts extends AbstractOAuth2ApiBinding { 

private ObjectMapper objectMapper = new ObjectMapper(); 

/** 
* 
* @param jsonNode 
* @param postType 
* @param type 
* @return 
*/ 
public <T> PagedList<T> deserializeList(JsonNode jsonNode, String postType, Class<T> type) { 
    JsonNode dataNode = jsonNode.get("data"); 
    List posts = new ArrayList(); 
    for (Iterator iterator = dataNode.iterator(); iterator.hasNext();) { 
     posts.add(deserializePost(postType, type, (ObjectNode) iterator.next())); 
    } 
    if (jsonNode.has("paging")) { 
     JsonNode pagingNode = jsonNode.get("paging"); 
     PagingParameters previousPage = PagedListUtils.getPagedListParameters(pagingNode, "previous"); 
     PagingParameters nextPage = PagedListUtils.getPagedListParameters(pagingNode, "next"); 
     return new PagedList(posts, previousPage, nextPage); 
    } 

    return new PagedList(posts, null, null); 
} 

/** 
* 
* @param postType 
* @param type 
* @param node 
* @return 
*/ 
public <T> T deserializePost(String postType, Class<T> type, ObjectNode node) { 
    try { 
     if (postType == null) { 
      postType = determinePostType(node); 
     } 

     node.put("postType", postType); 
     node.put("type", postType); 
     MappingJackson2HttpMessageConverter converter = super.getJsonMessageConverter(); 
     this.objectMapper = new ObjectMapper(); 
     this.objectMapper.registerModule(new FacebookModule()); 
     converter.setObjectMapper(this.objectMapper); 
     return this.objectMapper.reader(type).readValue(node.toString()); 
    } catch (IOException shouldntHappen) { 
     throw new UncategorizedApiException("facebook", "Error deserializing " + postType + " post", shouldntHappen); 
    } 
} 

/** 
* 
* @param node 
* @return 
*/ 
private String determinePostType(ObjectNode node) { 
    if (node.has("type")) { 
     try { 
      String type = node.get("type").textValue(); 
      Post.PostType.valueOf(type.toUpperCase()); 
      return type; 
     } catch (IllegalArgumentException e) { 
      return "post"; 
     } 
    } 
    return "post"; 
} 

}

関連する問題