2013-08-19 1 views
1

내 앱에서 Facebook의 이메일을받는 데 문제가 있습니다. 내가 많이 봤 거든 많은 답변을 통해 왔지만 아무것도 내 경우에 작동합니다. 나는 같은 방법 described here을 따라 갔지만 반환 값은 null입니다. 아래는 내 코드입니다. 그리고 페이스 북 앱에서 사용자 & 친구 권한을 이메일로 추가했습니다. 누군가 내가 할 수있는 실수를 지적 할 수 있다면 큰 도움이 될 것입니다.Facebook에서 이메일 정보를 가져 오는 방법은 무엇입니까?

private void makeMeRequest(final Session session) { 
    Request request = Request.newMeRequest(session, 
      new Request.GraphUserCallback() { 
       @Override 
       public void onCompleted(GraphUser user, Response response) { 
        if (session == Session.getActiveSession()) { 
         if (user != null) { 
          profilePictureView.setProfileId(user.getId()); 
          facebook_id = String.valueOf(user.getId()); 
          fullName.setText(user.getName()); 
          if (user.asMap().get("email") != null) 
           email.setText(user.asMap().get("email") 
             .toString()); 
         } 
        } 
        if (response.getError() != null) { 
        } 
       } 
      }); 
    Bundle params = request.getParameters(); 
    params.putString("fields", "email,name"); 
    request.setParameters(params); 
    request.executeAsync(); 
} 

답변

1

이것은 적절할 수도 있습니다.

나는 비 대한 Facebook SDK 대신 https://github.com/sromku/android-simple-facebook을 사용하고 있습니다. 그리고 그걸로 이메일을받는 것이 꽤 쉽습니다.

mSimpleFacebook.getProfile(new OnProfileRequestAdapter() 
{ 
    @Override 
    public void onComplete(Profile profile) 
    { 
     String id = profile.getId(); 
     String firstName = profile.getFirstName(); 
     String birthday = profile.getBirthday(); 
     String email = profile.getEmail(); 
     String bio = profile.getBio(); 
     // ... and many more properties of profile ... 
    } 
}); 
1

요청이 정상적으로 보입니다. null 이메일 속성 값은 보통 email 권한이 부족합니다.

당신이 쓴 :

And also I have added User & Friend permissions as email in the facebook app 

당신은 페이스 북의 응용 프로그램에 의해 무엇을 의미합니까? 앱에서 권한을 요청해야합니다.


이 솔루션을 살펴보십시오. 나는 그것이 당신을 도울 수 있다고 생각합니다 : https://stackoverflow.com/a/18147719/334522

+0

어디에서 이메일 권한을 제공해야합니까? 이 코드 줄은 충분하지 않습니까?> params.putString ("fields", "email, name"); –

+1

아니요. 'params.putString ("fields", "email, name") 설정은 요청에 대한 응답으로 얻고 자하는 것입니다. 다음 행을 추가해야합니다 :'openRequest.setPermissions (Arrays.asList ("email"));'이 해결책을 확인하십시오 : http://stackoverflow.com/a/13926065/334522. 또는 많은 코드를 작성할 필요가없는이 오픈 소스 android-simple-facebook 라이브러리를 사용할 수 있습니다. 다음 몇 가지 단계를 수행하면 답변을 얻을 수 있습니다. https://github.com/sromku/android-simple-facebook#usage – sromku

+0

도서관을 이용했는데 정말 유용했습니다. 그러나 지금 나는 어딘가에 갇혀있다. 성공적으로 로그인했지만 다른 활동에서 세션을 검색하려면 어떻게해야합니까? (권한 및 구성을 설정하여 새 인스턴스를 초기화하지 않고). 거기에 어떤 방법이 있습니까? SimpleFacebook.getInstance (getApplicationContext());를 사용했습니다. 하지만 "로그인하지 않은 사용자"오류가 발생했습니다 –