【发布时间】:2015-02-12 07:40:29
【问题描述】:
我正在尝试使用 Facebook Android SDK 3.23.0 获取所有朋友的列表。
我只得到前 20 个结果,当试图转到下一页时,我只得到一个空结果。
代码如下:
Request.GraphUserListCallback callback = new Request.GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> graphUsers, Response response) {
parseFriends(graphUsers);
}
};
Bundle params = new Bundle();
params.putString("fields", "id, name");
Request request = Request.newMyFriendsRequest(mSession, callback);
while (request != null) {
request.setParameters(params);
Response response = request.executeAndWait();
if (response.getError() != null) {
Log.e(TAG, "Error in request: " + response.getError().toString());
break;
} else {
request = response.getRequestForPagedResults(Response.PagingDirection.NEXT);
}
}
这不行,第二个请求(getRequestForPagedResults() 创建的那个)本质上是空的(图形路径为“null”)。
当我查看第一个请求的响应时,“下一个”标签似乎非常好:
https://graph.facebook.com/v2.2/625641456/friends?fields=id,name&format=json&access_token=[TOKEN]&limit=25&offset=25&__after_id=[ID]
(我想知道为什么第一个请求只返回 20 个结果时偏移量是 25。我使用的是默认限制,我认为是 25)。
我的备份计划是跟踪我处理的元素数量,并简单地将“偏移量”添加到我传入的包中。但这会导致第二个请求为空,而它的“下一个”为空。
所以我尝试从第一个请求解析生成的“下一个”字符串并将其所有内容传递到包中,即_after_id、偏移量、限制等......但结果相同 - 空结果,没有“下一个” ”。
如何正确检索完整的好友列表?
【问题讨论】:
标签: android facebook-graph-api android-facebook