2013-06-27 50 views
1

我開發一個Android應用程序,而我使用此代碼從Facebook獲取一些數據獲取Facebook的用戶電子郵件地址:採用最新的Facebook SDK

public void onFBLoginClick(View view) 
{ 
    // start Facebook Login 
    Session.openActiveSession(this, true, new Session.StatusCallback() 
    { 
     // callback when session changes state 
     @Override 
     public void call(final Session session, SessionState state, Exception exception) 
     { 
      if (session.isOpened()) 
      { 
       // make request to the /me API 
       Request.executeMeRequestAsync(session, new Request.GraphUserCallback() 
       { 
        // callback after Graph API response with user object 
        @Override 
        public void onCompleted(GraphUser user, Response response) 
        { 
         if (user != null) 
         { 
          txtUserName.setText(session.getAccessToken()); 

          saveUserData(user.getId(), user.getName(), user.getBirthday(), user.asMap().get("email").toString()); 
          saveAccessToken(session.getAccessToken()); 

          getFacebookUserProfilePicture(session.getAccessToken()); 
         } 
        } 
       }); 
      } 
     } 
    }); 
} 

但是,我不能得到的電子郵件。始終爲空。

我對User & Friend Permissions設置了email權限,在developers.facebook.com上,但它不起作用。

我在做什麼錯?

+0

http://stackoverflow.com/a/17082098/1939564 –

回答

2

使用此代碼打開你的會話,你準備好了!

String[] PERMISSION_ARRAY_READ = {"email","user_birthday"}; 
List<String> PERMISSION_LIST=Arrays.asList(PERMISSION_ARRAY_READ); 
session.openForRead(new Session.OpenRequest(getParent()).setPermissions(PERMISSION_LIST).setCallback(statusCallback)); 

讓我知道你是否對此有任何問題。

+0

感謝您的回答,但是,我的代碼在哪裏,我必須把你的代碼? – VansFannel

+0

把它放在第一次調用'session.open ...()'或粘貼你的完整代碼我會告訴你。 – dd619

+0

我的完整代碼在這裏:http://stackoverflow.com/questions/17368614/get-facebook-friends-list-using-openactivesession-or-rest-api。現在我要求朋友名單,我收到電子郵件和user_birthday沒有問題。謝謝。 – VansFannel

相關問題