Android/기타 지식

[Kakao Auth] Android Studio로 카카오 로그인 API 사용하기 - 2. 구현 준비

jaesungLeee 2020. 7. 31. 15:29

프로젝트에서 사용 중인 카카오 로그인 API에 대한 설명이다.

구현에 필요한 Android Studio 프로젝트 생성 단계는 생략한다.

1. build.gradle (Module: app)

Gradle Scripts 안의 build.gradle (app)을 열어 dependencies안에 Kakao SDK 사용을 위한 implementation을 다음과 같이 추가해 준다.

프로젝트 수행 당시 Kakao SDK의 최신 Version은 1.30.0이다.

 

build.gradle dependencies 추가

2. build.gradle (project)

Gradle Scripts 안의 build.gradle (project)을 열어 allprojects 안에 subprojects을 다음과 같이 추가해 준다.

 

build.gradle(project)에 subprojects 추가

3. Kakao Developers로 이동

이제 Kakao Developers로 이동해 로그인을 하고 아래의 과정을 따른다.

1. 내 애플리케이션 -> 애플리케이션 추가하기 (앱 이미지는 추가하지 않아도 상관없다.)

2. 앱 설정 -> 요약 정보를 확인한다.

앱 키 -> 네이티브 앱 키

3. 네이티브 앱 키

네이티브 앱 키는 Android, IOS 개발에서 API 호출에 필요한 앱 키이다. 외부에 노출되지 않도록 유의해야 한다. 앱 키에 관련된 정보는 Kakao Developers에서 확인 가능하다.

이후에 이 네이티브 앱 키를 사용하니 위치를 잘 확인해 놓도록 하자.

 

4. 앱 설정 -> 플랫폼

Android 프로젝트를 추가해야 한다. Android 플랫폼 등록을 누른 후 패키지 명과 키 해시를 입력해 준다. 

패키지 명은 AndroidManifest.xml 상단에서 확인이 가능하다. 키 해시 입력방법은 아래 설명을 따른다.

 

4-1. 키 해시 구하기

키 해시를 구하는 방법은 카카오에서 제공하는 패키지(com.kakao.util)의 함수인 getKeyHash( )를 이용하는 방법과 OpenSSL을 설치해 커멘드로 확인하는 방법이 있다. 카카오 로그인의 경우 getKeyHash( )로 바로 확인한다는 편리함이 있지만 카카오 이외의 다른 API에서는 OpenSSL로 확인을 해야 한다. 주제가 카카오 로그인인 만큼 getKeyHash( )로 구하는 방법을 설명하고 추후에 키 해시 구하는 방법을 따로 다루도록 하겠다.

 

2020.08.10 - [[Android : Kotlin]/기타] - openSSL로 Key Hash 구하기

 

4-1.1 getKeyHash( )로 키 해시 구하기

MainActivity에서 onCreate( ) 함수 안에 아래처럼 입력한다.

var hash_key = getKeyHash(this)
Log.i("HASH_KEY", hash_key)

App을 실행하면 하단 Logcat에서 Hash_Key가 찍히는 것을 확인할 수 있다. 그대로 복사, 붙여 넣기 하면 된다.

 

플랫폼 추가까지 끝났으면 다시 Android Studio로 돌아온다.

4. AndroidManifest.xml

카카오 로그인은 카카오 서버와의 연결이 필요 하므로 AndroidManifest.xml에 Internet Permission을 추가해줘야 한다.

다음과 같이 추가해 준다.

Internet Permission 추가

 

이전에 확인한 네이티브 앱 키를 res -> values -> strings.xml에 다음과 같이 추가해 준다.

네이티브 앱 키 추가

 

AndroidManifest.xml에 다음과 같이 meta data를 추가해 준다.

.GlobalApplication은 지금은 무시해도 된다. 혹시나 추가하지 마시길..

 

5. 정리

이제 개발에 필요한 모든 준비는 끝났다.

이후의 게시물은 실제 카카오 로그인에 사용되는 로그인, 로그아웃 과정, 토큰 관리, 연결과 연결 해제에 대한 코드와 설명이다.