1. kakao developers 사이트(https://developers.kakao.com/)에 내 애플리케이션 추가하기
2. settings.gradle(Project) 파일에 Android SDK 레파지토리를 설정하기
3. build.gradle(Module) 파일에 필요한 모듈을 설정하기
4. keyHash값 알아내기 위한 코드 추가
5. manifests 인터넷 권한 추가
6. 새로운 키 해쉬 등록
Build - Generate Signed Bundle or APK -> Next -> Key store path -> Create new..
key store path 지정
password, allias, country code 입력 후 ok
입력된 값 확인 후 창 닫기
지정한 경로에 key파일 생김
build.gradle(module)에 key관련 내용 설정
실행 후 로그확인하면 키값을 확인할 수 있음
복사해서 마이 어플리케이션 키 해시에 등록
7. 리다이렉션(Redirection)을 통해 인가 코드를 받기위해 AndroidManifest.xml에 액티비티 설정
새로운 액티비티를 추가 (${NATIVE_APP_KEY}대신 나의 네이티브 앱 키로 변경)
8.kakao Developers 내 어플리케이션에서 카카오 로그인 활성화 설정 ON
동의 항목 설정
9. Kakao SDK 초기화 코드 추가
kakao 로그인 기능 수행 전 초기화 코드 추가
// Kakao SDK 초기화
KakaoSdk.init(this, "{NATIVE_APP_KEY}")
10.LoginActivity 추가하고 버튼 클릭시 로그인 기능 구현
class LoginActivity :AppCompatActivity() {
private lateinit var binding: ActivityLoginBinding
private val callback:(OAuthToken?, Throwable?) -> Unit = { token, error ->
if(error != null){
//로그인 실패
}else if(token != null){
//로그인 성공
Log.e("loginActivity", "lgoin in with kakao account token == $token")
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLoginBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.kakaoTalkLoginButton.setOnClickListener {
if (UserApiClient.instance.isKakaoTalkLoginAvailable(this)){
//카카오톡 로그인
UserApiClient.instance.loginWithKakaoTalk(this){ token, error ->
if(error != null) {
// 카카오톡 로그인 실패
// 유저가 로그인창 닫음
if (error is ClientError && error.reason == ClientErrorCause.Cancelled) {
return@loginWithKakaoTalk
}
UserApiClient.instance.loginWithKakaoAccount(this, callback = callback)
}else if(token != null){
// 로그인 성공
Log.e("loginActivity", "token == $token")
}
}
}else{
//카카오계정 로그인
UserApiClient.instance.loginWithKakaoAccount(this, callback = callback)
}
}
}
}
로그인 성공
로그 확인