카카오톡 설치 o , 카카오톡 로그인 상태 x 인 경우에 직접 입력 로그인문제

안녕하세요. 질문이 있어서 이곳에 남겨봅니다.

  1. 안드로이드(카카오톡 설치 O , 카카오톡 로그인 X ) -> UserApi.instance.loginWithKakaoAccount 호출 -> 브라우저 -> 카카오계정 직접 입력 로그인 -> callback 호출 안됨 -> 로그인 미완료

  2. ios(카카오톡 설치 O , 카카오톡 로그인 X ) -> UserApi.instance.loginWithKakaoAccount 호출 -> 설치된 카카오톡 실행 -> 카카오톡 앱 직접 입력 로그인 -> 로그인 완료

1.번이 안되는 상황과 2번은 왜 가이드에 맞게 했는데 , ios 만 카카오톡이 실행이 되는지 이해가 잘 가지 않습니다.

-> 목적은 1.상황에서 드로이드가 정상적으로 로그인 되는 프로세스 또는 ios 처럼 동작 되면서 로그인 성공하여, accesstoken을 받는것이 목표입니다. 감사합니다.

  • 카카오톡 간편 로그인 기능은 안드로이드, ios 모두 정상 로그인에 성공한 상태입니다.
  • 두 os 전부 네이티브 로그인 연동을 적용 중입니다.

안녕하세요~

사용하고 계신 카카오 android sdk 버전과, 카카오 ios sdk 버전이 어떻게 되시나요?

android min 21,
kakao 는 2.4.1 사용중입니다

혹시 안드로이드 환경에서 redirect URI 설정을 하셨을까요?
(참고 링크: https://developers.kakao.com/docs/latest/ko/kakaologin/android)

추가적으로 Android, iOS 모두 동일하게 loginWithKakaoAccount()를 호출했을 때는 카카오톡이 실행되지 않는 것이 정상 동작입니다. 해당 부분 구현 코드를 다시 한 번 확인해주시면 감사하겠습니다.

네 안드로이드 환경에서




    <!-- Redirect URI: "kakao{NATIVE_APP_KEY}://oauth" -->
    <data android:host="oauth"
            android:scheme="kakao{NATIVE_APP_KEY}" />
</intent-filter>

해당 값에 맞게 적용 시켰습니다.

그리고 loginWithKakaoAccount() 카카오톡 호출 안되는 부분은 인지하고있습니다.
위의 함수는 카카오톡으로 호출이 안될때 기본 브라우저로 직접 입력 로그인을 호출하는 부분으로 알고있습니다.
근데 해당 부분에서 직접 입력하였을때, 다음 진행이 안되는데 어떤부분을 놓치는게 있는지 확인이 안되서요

앱 id가 어떻게 되시나요? 서버 로그 확인해보겠습니다.

그리고 이 부분에서 카카오톡이라고 작성하신 것은 카카오 계정 입력 브라우저 창을 말씀하신 걸까요?

추가로 궁금한 부분은 ios 같은 경우에 UserApiClient.instance.loginWithKakaoTalk 호출하게 되면 카카오톡이 설치가 되었으면 무조건 카카오톡을 호출하는데, 안드로이드 같은 경우에는 “KakaoTalk is installed but not connected to Kakao account” 라는 설치됐지만 계정 연결이 안되어있다는 error 문구가 내려오는데 차이가 있는 부분인지 알고싶습니다.

id면 어떤부분을 드려야 하는건가요? 그리고 따로 보낼 수 있는 메일이 있으신가요?

카카오 디벨로퍼스 - 내 어플리케이션에 들어가시면 앱마다 5~6자리의 숫자가 할당되어있습니다. 해당 id 값을 알려주시면 됩니다. (앱 id는 외부에 유출되어도 전혀 지장 없습니다)

추가로 제 계정을 클릭하셔서 저에게 메시지 보내주시면 보내주신 메세지는 저만 확인할 수 있습니다.

현재 Android와 iOS SDK가 카카오톡 로그인이 안된 경우에 동작하는 방식의 차이가 있는 것이 맞습니다.

Android SDK가 iOS SDK와 동일한 동작방식으로 수정될 예정이고, 수정 후 배포 날짜는 아직 미정입니다.

그럼, 현재 안드로이드 에서 카카오톡 설치 O , 카카오톡 로그인 X 상태에서 직접입력으로 카카오톡 로그인 액세스 토큰을 받을 수 있는 방법 알 수 있을까요?;;

현재 안드로이드 sdk에서는 말씀하신 경우에 callaback으로 error를 넘겨주고 있는데요, 콜백 내에서 loginWithKakaoAccount()를 호출하는 방식으로 구현하시면 될 것 같습니다.

간단한 예제 코드 첨부합니다

UserApiClient.instance.loginWithKakaoTalk(applicationContext) { token, error ->
                if (error != null) {
                    UserApiClient.instance.loginWithKakaoAccount(applicationContext) { token, error ->
                        if (error != null) {
                            Toast.makeText(applicationContext, "login fail", Toast.LENGTH_SHORT).show()
                        } else {
                            Toast.makeText(applicationContext, "account login! $token", Toast.LENGTH_SHORT).show()
                        }
                    }
                } else {
                    Toast.makeText(applicationContext, "talk login $token", Toast.LENGTH_SHORT).show()
                }
            }

네, 감사합니다. 근데, 제가 현재 위와 같은 코드를 사용 하고 있는데 loginWithKakaoAccount 를 호출하면 기본 브라우저 직접 입력 카카오로그인 페이지가 뜨고,카카오 계정을 입력하고 로그인 버튼을 누르면 아무 반응도 없고, callback 되지도 않아서, 이 다음을 어떻게 처리해야 하는지 가 궁금합니다.

제게 보내주신 개인 메시지에 답글 남겼습니다. 확인 후 답글 부탁드려요~