본문 바로가기

Development/Kotlin(Android)

Kotlin 카카오로그인 API 오류 AuthErrorCause.Unknown 처리

Kotlin으로 카카오로그인 구현 작업중 테스트앱에서 계속 아래의 "토큰 정보 보기 실패" 에러가 발생함.

예제로 나온 에러 처리는 모두 하였는데도 AuthErrorCause.Unknown 로 알 수 없음 에러로 빠짐.

UserApiClient.instance.accessTokenInfo { tokenInfo, error ->
            if (error != null) {
                splitties.toast.longToast("토큰 정보 보기 실패")
            } else if (tokenInfo != null) {
                splitties.toast.longToast("토큰 정보 보기 성공")

                //val intent = Intent(this, SecondActivity::class.java)
                //startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
                //finish()
            }
        }
        val callback: (OAuthToken?, Throwable?) -> Unit = { token, error ->
            if (error != null) {
                when {
                    error.toString() == AuthErrorCause.AccessDenied.toString() -> {
                        splitties.toast.longToast("접근이 거부 됨(동의 취소)")
                    }
                    error.toString() == AuthErrorCause.InvalidClient.toString() -> {
                        splitties.toast.longToast("유효하지 않은 앱")
                    }
                    error.toString() == AuthErrorCause.InvalidGrant.toString() -> {
                        splitties.toast.longToast("인증 수단이 유효하지 않아 인증할 수 없는 상태")
                    }
                    error.toString() == AuthErrorCause.InvalidRequest.toString() -> {
                        splitties.toast.longToast("요청 파라미터 오류")
                    }
                    error.toString() == AuthErrorCause.InvalidScope.toString() -> {
                        splitties.toast.longToast("유효하지 않은 scope ID")
                    }
                    error.toString() == AuthErrorCause.Misconfigured.toString() -> {
                        splitties.toast.longToast("설정이 올바르지 않음(android key hash)")
                    }
                    error.toString() == AuthErrorCause.ServerError.toString() -> {
                        splitties.toast.longToast("서버 내부 에러")
                    }
                    error.toString() == AuthErrorCause.Unauthorized.toString() -> {
                        splitties.toast.longToast("앱이 요청 권한이 없음")
                    }
                    else -> { // Unknown

                        splitties.toast.longToast("기타 에러_"+AuthErrorCause.Unknown.toString())
                    }
                }
                //exit : 카카오 로그인 실패

 

해결방법

 - 기존 개발하던 데스크탑에서 작업PC를 노트북으로 옮겼더니 PC마다 별도로 키를 등록해야 하는것임.

 

1. kakao Devlopers 콘솔 사이트로 이동

 - https://developers.kakao.com/console/app

 

카카오계정 로그인

여기를 눌러 링크를 확인하세요.

accounts.kakao.com

 

2. 작업중인 앱 선택 -> 앱설정 -> 플랫폼 선택

 

3. 안드로이드 플랫폼 수정 창에서 키 해시 에 해당 기기의 KEY값 등록

 - 여러개의 KEY를 입력하는 경우 엔터키로 여러개 등록 가능함.

 

KEY를 저장하면 1-2분뒤에 "토큰 정보 보기 성공"으로 등록이 완료됨.