春のソーシャルを使用して、すべての友達のリストを取得しています。ただし、Facebook グラフ API から取得できる友達の数は、Facebook が私のプロフィールで報告している友達の数と同じではないようです。
Facebookによると、私には175人の友達がいます。春のソーシャル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 ユーザーは、グラフ API から友人として返されることを選択できますか?