我知道如何异步执行Request.newMyFriendsRequest(session,Request.GraphUserListCallback)
,并且在回调方法中,您可以访问List<GraphUser>
元素。问题是如何在后台线程中执行此操作。
到目前为止我所拥有的是
Request friendsRequest = new Request(session,"/me/friends");
Response response = friendsRequest.executeAndWait();
GraphObject obj = response.getGraphObject();
如何将obj
转换为List<GraphUser>
或者是否有更好的方法而且我只是遗漏了某些内容?
答案 0 :(得分:0)
我找到了一种方法来帮助我完成任务。但我不知道这是不是最好的方法。
所以我所做的只是从Facebook获取整个JSON响应并解析出我想要的内容。
try {
Request friendsRequest = new Request(session, "/me/friends");
Response response = friendsRequest.executeAndWait();
JSONObject responseJSON = new JSONObject(response.getRawResponse());
JSONArray data = responseJSON.getJSONArray("data");
if (data.length() > 0) {
for (int i = 0; i < data.length(); i++) {
JSONObject friend = (JSONObject) data.get(i);
String name = friend.getString("name");
String facebookID = friend.getString("id");
// Do Stuff With name and facebookID
}
}
} catch (JSONException e) {
e.printStackTrace();
} catch (FacebookException e) {
e.printStackTrace();
}
确保捕获FacebookException
,否则当用户没有数据连接时你会强行关闭