我正在使用一个很棒的库来更轻松地使用 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();
}
});
}
}
};