2

如何在使用 Facebook API 的活动中获取使用我的应用程序的朋友列表?目前正在开发一个使用 Facebook API 的应用程序,以向安装了我的应用程序的用户显示朋友列表。我尝试使用像“我”这样的 Graph API Explorer /friends?fields=name,likes,installed “但我想知道如何在我的 Android App Activity 中获得所需的结果。现在我可以使用 FQL 查询得到这个:

{Response:responseCode:200, graphObject:GraphObject{graphObjectClass=GrahObject,state=
    {
  "data": [
    {
      "uid": xxxx98471, 
      "name": "ABC"
    }, 
    {
      "uid": xxx425672424, 
      "name": "XYZ"
    }
  ]
},error:null, isFromCache:false}

那么如何格式化这个输出并以正确的方式显示它:名称:ABC名称:列表视图中的XYZ左右...... 我尝试过使用:

public void onCompleted(Response response) {
                GraphObject graphObject = response.getGraphObject();
                String s = textViewResults.getText().toString();
                if (graphObject != null) {
                    if (graphObject.getProperty("id") != null) {
                        s = s + String.format("%s: %s\n", 
                                graphObject.getProperty("id"), 
                                graphObject.getProperty("name"));
                    }
                }
                textViewResults.setText(s);
            }
        }));
    }
    request.executeAsync();

我在结果中得到“null”。所以现在谁能告诉我如何解析这种类型的响应。任何帮助将不胜感激。

4

2 回答 2

13
public void onCompleted(Response response) {
                GraphObject graphObject = response.getGraphObject();
                String s = textViewResults.getText().toString();
                if (graphObject != null) {
                    JSONObject jsonObject = graphObject.getInnerJSONObject();
                    try {
                     JSONArray array = jsonObject.getJSONArray("data");
                     for (int i = 0; i < array.length(); i++) {
                         JSONObject object = (JSONObject) array.get(i);
                         Log.d(TAG, "id = "+object.get("id"));
                      }
                } catch (JSONException e) {

                 e.printStackTrace();
                }
         }
                textViewResults.setText(s);
            }
        }));
}
request.executeAsync();
于 2013-02-03T12:44:53.063 回答
2

试试这个:

  JSONObject json = Util.parseJson(mFacebook.request("me/friends"));
            final JSONArray friends = json.getJSONArray("data");
            if (friends != null) {
                for (int i = 0; i < friends.length(); i++) {
                    String id =
              friends.getJSONObject(i).getString("id");                     
                    String name = friends.getJSONObject(i).getString("name");
                        Log.i(id,name);
                }
            }         
于 2013-02-02T12:44:24.657 回答