안드로이드 카카오톡 로그인

미미·2023년 7월 1일
0

안드로이드

목록 보기
1/6
post-thumbnail

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 지정
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)
            }
        }


    }
}

로그인 성공

로그 확인

0개의 댓글