카카오 로그인 콜백 소스 인데 여기서 따로 추가 해 줘야하나요???
한번 보시고 알려 주세요
//카카오 로그인 콜백
private class SessionCallback implements ISessionCallback{
@Override
public void onSessionOpened() { //세션이 성공적으로 열린 경우
UserManagement.getInstance().me(new MeV2ResponseCallback() { //유저 정보를 가져온다.
@Override
public void onFailure(ErrorResult errorResult) { //유저 정보를 가져오는 데 실패한 경우
int result = errorResult.getErrorCode(); //오류 코드를 받아온다.
if(result == ApiErrorCode.CLIENT_ERROR_CODE) { //클라이언트 에러인 경우: 네트워크 오류
Toast.makeText(getApplicationContext(), "네트워크 연결이 불안정합니다. 다시 시도해 주세요.", Toast.LENGTH_SHORT).show();
finish();
} else { //클라이언트 에러가 아닌 경우: 기타 오류
Toast.makeText(getApplicationContext(),"로그인 도중 오류가 발생했습니다: "+errorResult.getErrorMessage(),Toast.LENGTH_SHORT).show();
}
}
@Override
public void onSessionClosed(ErrorResult errorResult) { //세션이 도중에 닫힌 경우
Toast.makeText(getApplicationContext(),"세션이 닫혔습니다. 다시 시도해 주세요: "+errorResult.getErrorMessage(),Toast.LENGTH_SHORT).show();
}
@Override
public void onSuccess(MeV2Response result) { //유저 정보를 가져오는데 성공한 경우
String needsScopeAutority = ""; //이메일, 성별, 연령대, 생일 정보 가져오는 권한 체크용
if(result.getKakaoAccount().needsScopeAccountEmail()) { //이메일 정보를 가져오는 데 사용자가 동의하지 않은 경우
needsScopeAutority = needsScopeAutority + "이메일";
}
if (needsScopeAutority.length() !=0){ //거절된 권한이 있는 경우
//거절된 권한을 허용해달라는 Toast 메세지 출력
if(needsScopeAutority.charAt(0) == ',') {
needsScopeAutority = needsScopeAutority.substring(2);
}
Toast.makeText(getApplicationContext(), needsScopeAutority+"에 대한 권한이 허용되지 않았습니다. 개인정보 제공에 동의해주세요.", Toast.LENGTH_SHORT).show();
} else { //모든 정보를 가져오도록 허락받았다면
//logoutActivity로 넘어가면서 유저 정보를 같이 넘겨줌
Intent intent = new Intent(getApplicationContext(),logoutActivity.class);
intent.putExtra("name", result.getNickname()); //유저 이름(String)
intent.putExtra("profile", result.getProfileImagePath()); //유저 프로필 사진 주소(String)
if (result.getKakaoAccount().hasEmail() == OptionalBoolean.TRUE)
intent.putExtra("email", result.getKakaoAccount().getEmail()); //이메일이 있다면 -> 이메일 값 넘겨줌(String)
else
intent.putExtra("email", "none"); //이메일이 없다면 -> 이메일 자리에 none 집어넣음.
startActivity(intent);
finish();
}
}
});
}