0

FacebookでログインしてFacebookの友達を取得する必要があるAndroidアプリに取り組んでいます。

Facebookの友達を取得するために以下のコードを使用しています:

public class FriendsRequestListener は RequestListener を実装します {

/**
 * Called when the request to get friends has been completed.
 * Retrieve and parse and display the JSON stream.
 */
public void onComplete(final String response) {
    try {
        // process the response here: executed in background thread
        Log.d("Facebook-Example-Friends Request", "response.length(): " + 
                response.length());
        Log.d("Facebook-Example-Friends Request", "Response: " + response);

        final JSONObject json = new JSONObject(response);
        JSONArray d = json.getJSONArray("data");
        int l = (d != null ? d.length() : 0);
        Log.d("Facebook-Example-Friends Request", "d.length(): " + l);

        for (int i=0; i<l; i++) {
            JSONObject o = d.getJSONObject(i);
            String n = o.getString("name");
            String id = o.getString("id");
        }

        // Only the original owner thread can touch its views

    } catch (JSONException e) {
        Log.w("Facebook-Example", "JSON Error in response");
    }
}

@Override
public void onComplete(String response, Object state) {
    // TODO Auto-generated method stub

}

@Override
public void onIOException(IOException e, Object state) {
    // TODO Auto-generated method stub

}

@Override
public void onFileNotFoundException(FileNotFoundException e, Object state) {
    // TODO Auto-generated method stub

}

@Override
public void onMalformedURLException(MalformedURLException e, Object state) {
    // TODO Auto-generated method stub

}

@Override
public void onFacebookError(FacebookError e, Object state) {
    // TODO Auto-generated method stub

}

}

このクラスを呼び出す方法:

mAsyncRunner = new AsyncFacebookRunner(facebook);
                mAsyncRunner.request("me/friends", new FriendsRequestListener());

問題は、私のコードが上記のコードの呼び出しで何もしていないことです。

4

2 に答える 2

-1

Facebookの友達リストをすべて取得するには、「taggable_friends」を取得する必要があります

GraphRequestAsyncTask r = GraphRequest.newGraphPathRequest(fbToken,
        "/me/taggable_friends", new Callback() {

            @Override
            public void onCompleted(GraphResponse response) {
                //here you can parse the response
            }
        }

fbTokenログインからのトークンです。ただし、facebook はページングを使用するため、次のページを取得してから、友達リクエストから次の値を取得して解析できるようにする必要があります。

response.getJSONObject("paging").getString("next");

StringRequest を使用して次のページのユーザーを取得するには

StringRequest sr = new StringRequest(Request.Method.GET, next,
        new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                JSONObject friends = null;
                try {
                    friends = new JSONObject(response);
                    parseResponse(friends);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
    }

完全なコードを確認する Facebook の友達リスト

于 2015-11-30T13:15:27.153 に答える