1

我正在使用一个很棒的库来更轻松地使用 facebook api。是该库的链接。在这里你可以看到一个例子,如何从 facebook 获取喜欢的照片。现在使用 facebook api 你没有获取所有记录。在大多数情况下,您要获取 25 条记录,并且您需要使用分页来获取下一页,我正在为照片这样做,并且我正在获取所有用户照片,但我并没有得到所有的喜欢。这个库有两种方法hasNext()getNext()一种返回布尔值来检查是否还有一个页面,第二种方法是获取新请求。

这是代码的一部分:

OnFriendsListener onFriendsListener = new OnFriendsListener() {

    @Override
    public void onComplete(List<Profile> friends) {
        Bundle params = new Bundle();
        params.putCharSequence("fields",
                "source, name, link, images, from, created_time");

        for (Profile profile : friends) {
            activity.getSimpleFacebook().get(profile.getId(), "photos/uploaded", params,
                    new OnActionListener<List<Photo>>() {
                @Override
                public void onComplete(List<Photo> photos) {
                    adapter = new TodayListAdapter(activity, topics);
                    RecyclerView.LayoutManager manager = new LinearLayoutManager(activity);
                    recyclerView.setLayoutManager(manager);
                    recyclerView.setItemAnimator(new DefaultItemAnimator());
                    recyclerView.setAdapter(adapter);

                    for (final Photo photo : photos) {
                        // Initialize instance of Topic
                        final Topic topic = new Topic();
                        final User user = photo.getFrom();

                        activity.getSimpleFacebook().getLikes(photo.getId(),
                                new OnLikesListener() {
                                    @Override
                                    public void onComplete(List<Like> likes) {
                                        topic.setNumOfLikes(likes.size());
                                    }
                                });

                        topic.setPostImage(photo.getSource());
                        topic.setUserId(user.getId());
                        topic.setName(user.getName());
                        topics.add(topic);
                        adapter.notifyDataSetChanged();
                    }

                    if (hasNext()) {
                        getNext();
                    }
                }

                @Override
                public void onThinking() {
                    super.onThinking();
                    hideDialog();
                }
            });
        }
    }
};
4

0 回答 0