2016-08-12 102 views
0

我創建了一些代碼,使用圖形api獲取朋友列表,但沒有找到朋友list.i只有朋友的總數。如何在android中使用graph api獲取朋友列表?

代碼: -

LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends", "email")); 
     LoginManager.getInstance().registerCallback(callbackManager, 
       new FacebookCallback<LoginResult>() { 
        @Override 
        public void onSuccess(LoginResult loginResult) { 
         Log.e("Success1", "Success" + loginResult.getAccessToken().getToken()); 
         GraphRequest request = GraphRequest.newMeRequest(
           loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() { 
            @Override 
            public void onCompleted(JSONObject json, GraphResponse response) { 
             progressDialog.dismiss(); 

             if (response.getError() != null) { 
              // handle error 
              Log.e("getError", "getError"); 
             } else { 
              Log.e("Success2", "Success"); 
              try { 
               String jsonresult = String.valueOf(json); 
               Log.e("JSON", "" + jsonresult); 

               new GraphRequest(
                 AccessToken.getCurrentAccessToken(), 
                  "/" + json.getString("id") + "/friends", 
                 null, 
                 HttpMethod.GET, 
                 new GraphRequest.Callback() { 
                  public void onCompleted(GraphResponse response) { 
                   Log.e("response", "" + response); 
                  } 
                 } 
               ).executeAsync(); 
              } catch (JSONException e) { 
               e.printStackTrace(); 
               Log.e("JSONException", "" + e.getMessage()); 
              } 
             } 
            } 

           }); 
         Bundle parameters = new Bundle(); 
         parameters.putString("fields", "id, first_name, last_name, email,gender, birthday, location,friends"); // Parámetros que pedimos a facebook 
         request.setParameters(parameters); 
         request.executeAsync(); 
        } 

        @Override 
        public void onCancel() { 
         Log.e("cancel", "On cancel"); 
         progressDialog.dismiss(); 
        } 

        @Override 
        public void onError(FacebookException error) { 
         Log.e("Error", error.toString()); 
         progressDialog.dismiss(); 
        } 
       }); 

輸出: -

{"data":[],"summary":{"total_count":475}}, error: null} 
+0

實際API點這個路徑獲得好友列表。 /{user-id}/friendlists –

+0

需要哪些權限? – ckpatel

+0

你試過用json.getString(「id」)+「/ friendlists而不是json.getString(」id「)+」/ friends? –

回答

1

Facebook的圖形API 2.0的更新後,您將能得到您的朋友只有誰使用你的應用程序。

使用Graph API v2.0及以上版本,對/ me/friends的呼叫只會返回也使用您的應用的朋友。這些朋友必須也授予了user_friends權限。如果您希望讓人們在您的應用發佈的故事中標記好友,則可以使用Taggable Friends API。

檢查這更多信息 https://developers.facebook.com/docs/apps/faq#faq_1694316010830088

+0

謝謝,我收到了朋友列表,但有什麼方法可以找到朋友的聯繫電話號碼? – ckpatel

+0

當然不是,你甚至不能得到授權用戶的電話號碼 – luschn

相關問題