2017-04-08 7 views
0

私は次のコードを使用してFacebookの友達の数を取得しています。しかし、私は応答としてidを得るだけです。Facebookグラフapi:FriendsListデータを返さない

GraphRequest getFriendsCountRequest = GraphRequest.newGraphPathRequest(
       fbToken, 
       "/me", 
       new GraphRequest.Callback() { 
        @Override 
        public void onCompleted(
          GraphResponse response) { 
         // Application code 

         try { 
          System.out.println(response.getJSONObject().toString()); 
          Long friendsCount = response.getJSONObject() 
            .getJSONObject("friends") 
            .getJSONObject("summary") 
            .getLong("total_count"); 
          System.out.println("Total Friends: " + friendsCount); 
         } catch (JSONException e) { 
          Log.e(LoggedInActivity.class.getCanonicalName(), "Error in getting count from response", e); 
         } 

        } 
       }); 
     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "friends"); 
     getFriendsCountRequest.setParameters(parameters); 
     getFriendsCountRequest.executeAsync(); 

グラフExplorerを使用している間、私は助けてください/me/fields=friends

と予想される応答を取得!

+0

あります。 'をLoginButtonに渡すと、問題が解決されます。 –

答えて

0

このコードを試してください:グラフAPIを使用してフレンドリストを取得する。 Gradleで

public class MainActivity extends AppCompatActivity { 

CallbackManager callbackManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    facebookSDKInitialize(); 
    setContentView(R.layout.activity_main); 
    LoginButton loginButton = (LoginButton) findViewById(R.id.login_button); 
    loginButton.setReadPermissions("user_friends"); 
    getLoginDetails(loginButton); 
} 

/* 
* Register a callback function with LoginButton to respond to the login result. 
*/ 
protected void getLoginDetails(LoginButton login_button){ 

    // Callback registration 
    login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
     @Override 
     public void onSuccess(LoginResult login_result) { 
      GraphRequestAsyncTask graphRequestAsyncTask = new GraphRequest(
        login_result.getAccessToken(), 
        //AccessToken.getCurrentAccessToken(), 
        "/me/friends", 
        null, 
        HttpMethod.GET, 
        new GraphRequest.Callback() { 
         public void onCompleted(GraphResponse response) { 
          Intent intent = new Intent(MainActivity.this,FriendsList.class); 
          try { 
           JSONArray rawName = response.getJSONObject().getJSONArray("data"); 
           intent.putExtra("jsondata", rawName.toString()); 
           startActivity(intent); 
          } catch (JSONException e) { 
           e.printStackTrace(); 
          } 
         } 
        } 
      ).executeAsync(); 

     } 

     @Override 
     public void onCancel() { 
      // code for cancellation 
     } 

     @Override 
     public void onError(FacebookException exception) { 
      // code to handle error 
     } 
    }); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    callbackManager.onActivityResult(requestCode, resultCode, data); 
} 

protected void facebookSDKInitialize() { 

    FacebookSdk.sdkInitialize(getApplicationContext()); 
    callbackManager = CallbackManager.Factory.create(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    // Logs 'install' and 'app activate' App Events. 
    AppEventsLogger.activateApp(this); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 

    // Logs 'app deactivate' App Event. 
    AppEventsLogger.deactivateApp(this); 
} 

:ここ

compile 'com.facebook.android:facebook-android-sdk:4.6.0' 

は `facebookLoginButton.setReadPermissions( "user_friends")を追加完全Example

+0

ありがとうございます。このmFacebookSignInButton.setReadPermissions( "user_friends")が見つかりませんでした。 –

関連する問題