我正在使用 spring social 来获取我所有朋友的列表。但是,我可以从 facebook graph api 获得的朋友数量似乎与 facebook 在我的个人资料中报告的朋友数量不同。
根据 facebook,我有 175 个朋友。使用 spring social facebook 我似乎只能获得 156 个朋友。我知道 spring social facebook 的分页问题,所以我使用下面的代码。
private Map<String, FacebookProfile> getFacebookProfiles()
{
Connection<Facebook> connection = connectionRepository.findPrimaryConnection(Facebook.class);
FriendOperations friendOperations = connection.getApi().friendOperations();
// FindFriendProfes() only returns 100 friends, need to use batching to get all friends
List<FacebookProfile> friendProfiles = new ArrayList<>(250);
final int batchSize = 100;
int offset = 0;
List<FacebookProfile> batch = friendOperations.getFriendProfiles(offset, batchSize);
do
{
friendProfiles.addAll(batch);
offset = offset + batchSize;
batch = friendOperations.getFriendProfiles(offset, batchSize);
} while (batch.size() != 0);
Map<String, FacebookProfile> result = new HashMap<>(friendProfiles.size());
for (FacebookProfile facebookProfile : friendProfiles)
{
result.put(facebookProfile.getId(), facebookProfile);
}
return result;
}
要么在 spring-social facebook 集成中存在错误,要么 facebook 用户有办法说他们不应该作为图形 api 调用的一部分返回。
facebook 用户可以选择从 graph api 作为朋友返回吗?