0

我正在使用 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 作为朋友返回吗?

4

1 回答 1

1

是的,准确地说,Facebook 用户可以通过转到他们的隐私设置 > 广告、应用程序和网站 > 编辑设置 > 人们如何将您的信息带到他们使用的应用程序来选择退出第三方应用程序

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

于 2012-12-01T07:07:22.883 回答