2014-07-11 2 views
5

저는 java로 facebook4j를 사용하고 있으며 Facebook의 공개 프로필에있는 게시물의 모든 댓글을 사용하고 싶습니다. 각 게시물에 대한 처음 25 개의 댓글을 읽을 수는 있지만 그 밖의 모든 의견은 읽을 수 없습니다. 페이징의 논리가 있다는 것을 이해하지만, 페이지간에 전달할 수 없습니다. 게시물에서 의견을 얻으려는 내 코드는 다음과 같습니다.facebook4j로 소식에서 댓글 달기

나는 commenti를 순환 시키려고하지만 첫 번째 요소에만 도달합니다. 또한 PagableList를 배열로 변환하려고 시도하지만 25 개의 요소 만 있습니다. commenti에서 Paging 또는 Cursor를 가져 와서 순환 시키면 루프에 들어갑니다. 마침내 getCount()를 작성하면 항상 null이 반환됩니다.

누군가 나를 도울 수 있습니까?

답변

3

질문에 대답하기에는 너무 늦었는지 확실하지 않습니다.

예. 페이징을 사용하여 항목의 다음 페이지를 가져오고 fetchNext()를 사용하여 페이지에서 항목을 가져와야합니다. 페이지의 끝에 도달하면 null을 반환합니다. 다음은 그 예입니다.

public List<Comment> getComments(Post post) { 
    List<Comment> fullComments = new ArrayList<>(); 
    try { 
     // get first few comments using getComments from post 
     PagableList<Comment> comments = post.getComments(); 
     Paging<Comment> paging; 
     do { 
      for (Comment comment: comments) 
       fullComments.add(comment); 

      // get next page 
      // NOTE: somehow few comments will not be included. 
      // however, this won't affect much on our research 
      paging = comments.getPaging(); 
     } while ((paging != null) && 
       ((comments = fb_.fetchNext(paging)) != null)); 

    } catch (FacebookException ex) { 
     Logger.getLogger(Facebook.class.getName()) 
       .log(Level.SEVERE, null, ex); 
    } 

    return fullComments; 
} 

그러나 (주석에 주석을 넣었습니다.) 주석이 거의 없습니다. 아직 그 원인에 대해서는 잘 모르겠습니다. 번호가 다소 작기 때문에 연구에 영향을 미치지 않을 것입니다.

관련 문제