Facebook graph api facebook用户可以选择退出graph api吗?

Facebook graph api facebook用户可以选择退出graph api吗?,facebook-graph-api,spring-social,Facebook Graph Api,Spring Social,我正在使用SpringSocial获取我所有朋友的列表。然而,似乎我可以从facebook graph api获得的朋友数量与facebook在我的个人资料中报告的朋友数量不一样 根据facebook,我有175个朋友。使用spring社交facebook,我似乎只能得到156个朋友。我知道SpringSocialFacebook的分页问题,所以我使用下面的代码 private Map<String, FacebookProfile> getFacebookProfiles() {

我正在使用SpringSocial获取我所有朋友的列表。然而,似乎我可以从facebook graph api获得的朋友数量与facebook在我的个人资料中报告的朋友数量不一样

根据facebook,我有175个朋友。使用spring社交facebook,我似乎只能得到156个朋友。我知道SpringSocialFacebook的分页问题,所以我使用下面的代码

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;
}
私有地图getFacebookProfiles()
{
Connection Connection=connectionRepository.findPrimaryConnection(Facebook.class);
FriendOperations=connection.getApi().FriendOperations();
//FindFriendProfes()只返回100个好友,需要使用批处理来获取所有好友
List friendProfiles=新的ArrayList(250);
最终int batchSize=100;
整数偏移=0;
List batch=friendOperations.getFriendProfiles(偏移量、批次大小);
做
{
friendProfiles.addAll(批量);
偏移量=偏移量+批量大小;
批处理=friendOperations.getFriendProfiles(偏移量、批处理大小);
}while(batch.size()!=0);
Map result=newhashmap(friendProfiles.size());
用于(FacebookProfile FacebookProfile:friendProfiles)
{
put(facebookProfile.getId(),facebookProfile);
}
返回结果;
}
要么是SpringSocialFacebook集成中存在缺陷,要么是facebook用户有办法说他们不应该作为GraphAPI调用的一部分返回


facebook用户可以选择从graph api返回朋友身份吗?

是的,facebook用户可以选择退出第三方应用程序,方法是进入他们的隐私设置>广告、应用程序和网站>编辑设置>人们如何将您的信息带到他们使用的应用程序

编辑这些设置的朋友将不会出现在图形API调用中