일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- AWS
- 뒤로가기 안됨
- bitbucket
- 안드로이드 스튜디오
- not working
- Kotlin
- aPK
- 안드로이드
- react
- gradle
- 개발환경설정
- 빌드 오류
- 예제
- Invalid credentials
- git인증
- 리액트 네이티브
- sourcetree
- WPF
- react-native
- 설정
- EC2
- 데이터바인딩
- Git
- 인증문제해결
- flutter
- Android
- 안됨
- 디버깅
- VisualStudio
- 리액트
- Today
- Total
물에 살고싶은 개발자
[FaceBook] 로그인 연동 Email 받아오기 본문
보통 돌아다니는 블로그들을 보고 페북연동을 했다면 아마도 이메일을 얻어올수없을것이다.
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