2014-04-07 3 views
2

나는 최신 안드로이드 simple facebook 라이브러리 (https://github.com/sromku/android-simple-facebook) 을 사용하고 있으며 이름, 사진 (프로필 이미지)으로 친구 목록을 얻고 싶습니다.android-simple-facebook libraries를 사용하여 친구 pictoe를 얻을 수있는 방법

하지만 난 친구가 모든 사진 얻을 두지 못하는 .. 아래

내 코드는 ... LoginListener

private OnLoginListener mOnLoginListener = new OnLoginListener() { 

    @Override 
    public void onFail(String reason) { 
     Log.w(TAG, "Failed to login"); 
    } 

    @Override 
    public void onException(Throwable throwable) { 
     Log.e(TAG, "Bad thing happened", throwable); 
    } 

    @Override 
    public void onThinking() { 
     // show progress bar or something to the user while login is 
     // happening 
    } 

    @Override 
    public void onLogin() { 
     PictureAttributes pictureAttributes = Attributes.createPictureAttributes(); 
     pictureAttributes.setType(PictureType.NORMAL); 
     pictureAttributes.setHeight(500); 
     pictureAttributes.setWidth(500); 

     // change the state of the button or do whatever you want 
     Properties properties = new Properties.Builder() 
       .add(Properties.ID) 
       .add(Properties.LAST_NAME) 
       .add(Properties.PICTURE, pictureAttributes) 
       .add(Properties.BIRTHDAY).build(); 

     mSimpleFacebook.getFriends(properties, mOnFriendsListener); 
    } 

    @Override 
    public void onNotAcceptingPermissions(Permission.Type type) { 
    } 
}; 

에서

과 친구 리스너

// get friends listener 
private OnFriendsListener mOnFriendsListener = new OnFriendsListener() { 

    @Override 
    public void onFail(String reason) { 
     // insure that you are logged in before getting the friends 
     Log.w(TAG, reason); 
    } 

    @Override 
    public void onException(Throwable throwable) { 
     Log.e(TAG, "Bad thing happened", throwable); 
    } 

    @Override 
    public void onThinking() { 
     // show progress bar or something to the user while fetching profile 
     Log.i(TAG, "Thinking..."); 
    } 

    @Override 
    public void onComplete(List<Profile> friends) { 
     for (Profile profile : friends) { 
      mLists.add(new FriendItem(profile.getName(), profile.getPicture()));     
     } 
     mAdapter = new FriendsListAdapter(getActivity()); 
     mFriendsList.setAdapter(mAdapter); 
    } 

}; 

이지만 프로필 개체에는 ID와 이름 만 포함됩니다. 비동기로 get 메소드를 호출해야합니까? 또는 getFriends() 메소드로 할 수있는 다른 것.

 Permission[] permissions = new Permission[] { 
      Permission.BASIC_INFO, 
      Permission.USER_CHECKINS, 
      Permission.USER_EVENTS, 
      Permission.USER_GROUPS, 
      Permission.USER_LIKES, 
      Permission.USER_PHOTOS, 
      Permission.USER_VIDEOS, 
      Permission.FRIENDS_EVENTS, 
      Permission.FRIENDS_PHOTOS, 
      Permission.PUBLISH_STREAM }; 

답변

0

) onLogin 내부 방법은 처리 할 수 ​​

사용 권한 목록

이 좋아입니다 당신이 요구 한 것들과

응답에는 사용 권한 작성기에서 요청한 모든 항목이 포함됩니다.

나는 이것을 알아 내기 위해 엄청난 시간을 보냈다. 희망 도움 :

final OnLoginListener onLoginListener = new OnLoginListener() { 

      @Override 
      public void onLogin(String accessToken, List<Permission> acceptedPermissions, List<Permission> declinedPermissions) { 
       OnProfileListener onProfileListener = new OnProfileListener() { 
        @Override 
        public void onComplete(final Profile response) { 
         super.onComplete(response); 
         . 
         . // Your code in here`enter code here` 
         . 
         }); 
        } 
0

Plz은 시도 이러한 권한 : Permission.PUBLIC_PROFILE, Permission.USER_BIRTHDAY

당신의 onComplete을 (오버라이드 (override) 할 어떤 이유