从Android执行Facebook集成的executeAndWait()获取列表<graphuser> </graphuser>

时间:2014-07-03 23:39:44

标签: java android facebook list facebook-graph-api

我知道如何异步执行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>或者是否有更好的方法而且我只是遗漏了某些内容?

1 个答案:

答案 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,否则当用户没有数据连接时你会强行关闭