카카오톡 간편 로그인 기능 구현 시 AuthError(statusCode=302, reason=Unknown, response=AuthErrorResponse(error=NotSupportError, errorDescription=KakaoTalk is installed but not connected to Kakao account.)) 와 같은 에러 발생.
구글링 해보니, 302 에러는 카카오톡은 설치되어 있으나, 카카오톡이 로그인이 되지 않았을 때 발생하는 에러라고 함. 카카오 로그인 API 이용시, 카카오톡이 설치되어 있을 때는 카카오톡 로그인을, 설치되어있지 않다면 카카오 계정 로그인을 시도하도록 로직을 짰었다. 현재 내 디바이스에는 카카오톡은 설치되어 있으나, 카카오톡에 로그인이 되어있지 않기 때문에 발생하는 에러.
개발자가 직접 예외 처리를 해주어 해결 가능. 즉, 카카오톡이 설치되어 있을때 302 에러가 발생한다면, 카카오 계정으로 로그인할 수 있게끔 해주면 된다.
private fun clickLoginKakao(){
callback = { token, error ->
if(token != null){
... 중략
}
}
}else{
loginWithKakaoAccount()
}
}
if(UserApiClient.instance.isKakaoTalkLoginAvailable(this)){
UserApiClient.instance.loginWithKakaoTalk(this, callback = callback!!)
} else {
UserApiClient.instance.loginWithKakaoAccount(this, callback = callback!!)
}
}
private fun loginWithKakaoAccount(){
UserApiClient.instance.loginWithKakaoAccount(this, callback = callback!!)
}