如何在使用Facebook API的活动中使用我的应用程序获取朋友列表?目前使用Facebook API开发应用程序向安装了我的应用程序的用户显示朋友列表。我尝试使用Graph API浏览器,例如" 我/朋友?字段=名称,赞,已安装"但我想知道如何在我的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 在listview左右...... 我尝试过使用:
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"在结果中。所以现在任何人都可以告诉我如何解析这种类型的回复。任何帮助都将受到高度赞赏。
答案 0 :(得分: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();
答案 1 :(得分: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);
}
}