2

Facebook APIを使用したアクティビティでアプリを使用している友達のリストを取得するにはどうすればよいですか?現在、Facebook APIを使用してアプリを開発し、アプリをインストールしたユーザーに友達のリストを表示しています/ friends?fields = name、likes、installed "しかし、Androidアプリアクティビティで目的の結果を得る方法を知りたいです。これで、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 に答える