minSdkVersion 23 / targetSdkVersion 29
com.kakao.sdk:v2-user:2.5.0
다음 sdk와 카카오 로그인 API version을 사용중입니다.
카카오톡 로그인 매서드의 콜백은 정상수신을 확인했습니다. 그러나 카카오톡이 설치되지 않은 기기의 경우 카카오계정 로그인의 콜백이 정상수신 되지 않습니다.
사용 언어는 kotiln이며, 해당 로그인을 처리하는 매서드는 다음과 같습니다.
fun login(context: Context, kakaoManagerLoginDelegate: KakaoManagerLoginDelegate)
if (UserApiClient.instance.isKakaoTalkLoginAvailable(context)) {
ILog.iLogDebug(TAG, "카카오톡 로그인")
UserApiClient.instance.loginWithKakaoTalk(context, callback = { token, error ->
if (error != null) {
kakaoManagerLoginDelegate.onError(error = error.message)
}
else if (token != null) {
kakaoManagerLoginDelegate.onSuccess(token = token.accessToken)
}
})
}
else {
ILog.iLogDebug(TAG, "카카오계정 로그인")
UserApiClient.instance.loginWithKakaoAccount(context, callback = { token, error ->
ILog.iLogDebug(TAG, "에러 $error | 토큰 $token")
when {
error != null -> {
ILog.iLogDebug(TAG, "에러")
kakaoManagerLoginDelegate.onError(error.message)
}
token != null -> {
ILog.iLogDebug(TAG, "로그인 됨..")
kakaoManagerLoginDelegate.onSuccess(token = token.accessToken)
}
else -> {
ILog.iLogDebug(TAG, "????????")
}
}
})
ILog.iLogDebug(TAG, "엥?")
}
}
(ILog의 경우, 로그를 찍기 위한 커스텀 클래스입니다.)
해당 로그는 다음과 같이 수신이 됩니다.
2021-05-28 13:44:13.269 19449-19449 /[- ILog Print -] HomeListDetailActivity: 로그인 안되어잇음…!
2021-05-28 13:44:15.849 19449-19449 /[- ILog Print -] KakaoManager: ???
2021-05-28 13:44:15.891 19449-19449 /[- ILog Print -] KakaoManager: 카카오계정 로그인
2021-05-28 13:44:15.903 19449-19449 /[- ILog Print -] KakaoManager: 엥?
error 콜백 함수가 정상수신 되지 않으니 오류도 무엇인지 찾을수가 없군요 ^- ㅠ
혹시 코드에 오류가 있다면 말씀해주시면 감사합니다!
....(생략)<activity android:name=".main.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter> ...
<activity android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Redirect URI: "kakao{NATIVE_APP_KEY}://oauth“ -->
<data
android:host="oauth"
android:scheme="@string/kakao_app_key" />
</intent-filter>
</activity> .. (하략)
Manifest.xml에 안내되어 있는데로 입력했습니다!
… 은 카카오 로그인과 관련 없는 코드라 생략했음을 양해부탁드립니다!
혹시 제가 잘못 이해했을까요?!
현재 카카오 개발자 카카오 아이디와 앱이 등록되어 있는 카카오 아이디가 다르긴 합니다만 ㅠ
여섯자리 숫자로 된 아이디를 말씀하시는 거라면, 576353으로 확인됩니다!
Manifest 설정이 android:scheme="@string/kakao_app_key"
이렇게 되어있는데,
해당 위치에는 kakao{app key}://oauth 의 값이 저장되어야 정상적으로 동작하기 때문에 따로 정의해두신 @string/kakao_app_key
에 앱 키만 선언되어있는게 아닌지 확인 후 잘못되어있다면 수정 부탁드리겠습니다.
ex) 앱키: 123456 -> android:scheme="kakao123456://oauth"
strings.xml의 값에 들어있는 코드는 다음과 같습니다. 키의 중간 일부 값은 지웠습니다.
string name="kakao_native_app_key">ca657b3d920f017aa79ec75a</string>
string name="kakao_app_key">kakaocca657b3d920f017aa79ec75a://oauth</string>
native는 앱 로드 중에
KakaoSdk.init(context, context.getString(R.string.kakao_native_app_key)) 로 초기화하는데에 이용하고 있습니다.
혹시 이렇게 사용하는 것이 잘못되었을까요?
앱키가 ca657b3d920f017aa79ec75a
이므로 kakao_app_key는 kakaoca657b3d920f017aa79ec75a
가 되어야하는데 kakao + c + ca657b3d920f017aa79ec75a 형태로 c가 중간에 포함됐네요ㅠㅠ
오타 수정해주시면 정상 작동할 것 같습니다.
수정 후 정상 동작 확인 부탁드려요~
아아닙니다 앱키 저부분은 제가 개발자님께 보여드리려고 옮겨오면서 오타를 낸 부분입니다 ㅠㅠㅠ 아이고 혼동을 드려 너무너무 죄송합니다…
이부분에서 계정변경 이외에는 아예 어느 부분이건 콜백이 오지 않습니ㅣ다…
x를 눌러 웹뷰를 아예 꺼버리지 않는 이상요! 웹뷰를 종료하면 에러 ClientError(reason=Cancelled, msg=cancelled.) | 토큰 null 로 콜백이 출력됩니다
101 에러는 확인되지 않았습니다!
그러면 혹시 동일한 앱 키를 사용하는 다른 앱이 있나요?
현재 안드로이드/ ios 두 플랫폼을 병행개발중입니다. 그 이외에는 없습니다!
서버 로그를 확인해봤을 때, 서버로 로그인 요청이 왔고, Authorization Code가 정상적으로 발급돼서 클라이언트에게 다시 전송되고 있는데요, 클라이언트에서 Response를 받지 못하고 있는 상황인 것 같습니다.
해당 이슈는 보통은 Redirect URI를 제대로 설정하지 않아서 발생하는 경우가 많습니다. 하지만 답변 주시기를 앱 키를 정상적으로 입력하셨다고 해서 정확한 원인이 파악되지 않고 있네요ㅠㅠ
이슈 발생하는 상황을 동영상으로 첨부해주시면 이슈를 파악하는데 조금이라도 도움이 될 것 같습니다.
동영상이 업로드가 안되는것 같아서, 티스토리 링크로 올려두겠습니다!
https://itstudy-mary.tistory.com/369
다음처럼 로그인이 진행되지 않는 문제입니다. 로그인 코드는 위에 기재된 것과 동일합니다!
업로드해주신 동영상도 확인해봤는데, 저희 쪽에서 해당 이슈가 재현이 되지않아 정확한 원인을 파악하지 못했습니다ㅠㅠ
혹시 괜찮으시다면 프로젝트의 전체 소스파일 첨부가 가능할까요?
댓글로 깃허브 링크를 달아주셔도 괜찮고, 공개되기가 부담스러우시면 저에게 개인 메시지 보내주시면 확인해볼 수 있을 것 같아요.