물에 살고싶은 개발자

[FaceBook] 로그인 연동 Email 받아오기 본문

Android

[FaceBook] 로그인 연동 Email 받아오기

돼지사랑 2017. 8. 26. 19:53



보통 돌아다니는 블로그들을 보고 페북연동을 했다면 아마도 이메일을 얻어올수없을것이다.

onCompleted() 메서드에서 json오브젝트로 받아온 파라매터에서 email을 꺼낼수없기때문이다.


뭔가 요청을 안했던가 원래 안주던가 그럴텐데 어디지 하고 한참 찾다가 발견했다.

페이스북은 카톡과 다르게 요청을 해야만 email을 준다는것을..!!


아무튼 뭔소린지 잘 모를수도 있겠는데


결론은 이렇게 

@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
if(object.has("email")){
Log.e("facebook email", object.getString("email"));
}

} catch (Exception e) {
e.printStackTrace();
}
}
});
//파라매터 번들을 추가해서 필요한 요소들 받아오기
Bundle parameters = new Bundle();
parameters.putString("fields", "id,first_name,last_name,email,gender");
request.setParameters(parameters);
request.executeAsync();
}


아래 번들 파라매터를 만들어서 필요한 요소들을 보내면 된다.

그리고 onCompleted() 에서 마음껏 꺼내서 쓰면됨








참고 : https://freakycoder.com/android-notes-24-how-to-facebook-login-and-get-user-information-8d6df0350f1c


Comments