[안드로이드] 카카오 로그인(v2) loginWithKakaoAccount 콜백 무응답 관련

“com.kakao.sdk:v2-user:2.8.1” 버전 사용하고 있습니다.

카카오톡이 설치되어 있지 않은 사용자를 대상으로 계정 로그인을 수행하고 해당 결과를 돌려받는 callback이 동작하지 않는 것으로 보입니다.(리다이렉트 url, 네이티브 키 등록, 메니페스트(kakao{Key}) 모두 적용하여 테스트하고 있는데 혹시 관련해서 특별한 이유가 있는 것인지 문의드립니다.

if (UserApiClient.instance.isKakaoTalkLoginAvailable(this@SignInActivity)) {
UserApiClient.instance.loginWithKakaoTalk(this@SignInActivity, callback = callback)
} else {
UserApiClient.instance.loginWithKakaoAccount(this@SignInActivity, callback = callback)
}

위 코드의 loginWithKakaoAccount이 수행되고 있고 callback에는 error 및 토큰에 대한 로그를 남기도록 하고 있는데 아무런 반응이 없는 것으로 확인하였습니다.

확인 미리 감사드립니다.

안녕하세요.

2.8.1 버전으로 안드로이드 애뮬레이터로 테스트 해보니

카톡이 설치되지 않은 경우

isKakaoTalkLoginAvailable에서 false로 떨어지고
loginWithKakaoAccount를 수행하는 것으로 재현 했는데요.

아래와 같이 if문 내에 로그 확인해보시겠어요?

if (UserApiClient.instance.isKakaoTalkLoginAvailable(this@SignInActivity)) {
    Log.d("isKakaoTalkLoginAvailable", "isKakaoTalkLoginAvailable(true) ")
    UserApiClient.instance.loginWithKakaoTalk(this@SignInActivity, callback = callback)
} else {
    Log.d("isKakaoTalkLoginAvailable", "isKakaoTalkLoginAvailable(false) ")
    UserApiClient.instance.loginWithKakaoAccount(this@SignInActivity, callback = callback)
}

확인 감사합니다.
로그 확인 결과 D/isKakaoTalkLoginAvailable: isKakaoTalkLoginAvailable(false)로
설치가 안되어있는 것으로 나오는 것을 확인하였습니다.

그리고 로그인 웹페이지로 이동 후 로그인을 완료하면 콜백함수가 실행이 되어야하는 것으로 보이는데 콜백이 제대로 수행되고 있지 않는 상황입니다.
아래는 제 콜백함수 코드입니다.

val callback: (OAuthToken?, Throwable?) → Unit = { token, error →
if (error != null) {
Log.e(“TAG”, “로그인 실패”, error)
}
else if (token != null) {
Log.i(“TAG”, “로그인 성공 ${token.accessToken}”)
}
Log.d(“result==”, “11”)
}

로그인에 성공하여 “동의하고 계속하기” 버튼을 누른 뒤 api호출 엑티비티로 돌아오면 콜백함수의 로그가 출력되어야 하는 것으로 보이는데 현재 아무 로그도 남지 않는 상황입니다.

안녕하세요?

아래 내용 처럼 AnroidManifest에 Redirect URI 를 설정 하셨을까요?

네 manifest에 kakao + 제 앱의 nativeappkey로 설정되어있습니다.

그리고 developer 페이지 내 redirect url은 https://example.com/oauth로 설정되어 있는데 혹시 이부분이 문제가 되나요…?(아직 배포 전이라서 웹사이트가 따로 존재하지는 않습니다.)

안녕하세요 . 콜백이 안불리는 건 AndroidManifest 문제일것 같아서요.
앱 아이디 공유 부탁 드리고,
구현 하신 AndroidManifest.xml는 메시지로 공유 부탁 드립니다.

메시지 드렸습니다. 감사합니다 !!

답변 드렸습니다.

잘 해결했습니다.
Manifest에서 커스텀엑티비티에 해당 필터를 추가한부분이 실수였군요…도움주셔서 감사합니다 !!