我想要獲得所有使用Facebook Android SDK 3.23.0的朋友的列表。如何使用Android Facebook SDK獲取完整的朋友列表
我只得到前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]
(我不知道爲什麼偏移量爲25時,第一個請求只返回20個結果。我正在使用默認限制,我認爲這是25)。
我的備份計劃是跟蹤我處理的元素數量,並簡單地將「偏移量」添加到我傳入的包中。但是這導致第二個請求爲空,而其「下一個」爲空。
所以我試着從第一個請求中解析出結果的「下一個」字符串,並將它的所有內容傳遞到捆綁中,即_after_id,offset,limit等等,但是結果相同 - 空結果,沒有「下一個」。
如何正確檢索完整的朋友列表?
從安全/隱私的角度來看,這是有道理的,而且它也可以以這種方式工作。在好的時候,這也是http(沒有's'),你得到了所有的朋友信息,如果你挖了一點,甚至是非朋友信息:)。 – 2015-02-20 08:30:41