프로젝트 주요 기능
- 카카오 로그인 기능을 구현합니다.
- Kakao SDK 설정
- 로그인 사용자 정보 가져오기
프로젝트 완성 파일. zip
제작 1. Kakao Developers 설정
위 사이트로 들어가서 Kakao Developers의 '내 애플리케이션' 설정을 해줍니다.
내 애플리케이션 클릭!
카카오톡 로그인 후
애플리케이션 추가하기 클릭
앱 이름과 사업자명을 적당히 지어주고 '저장'
생성한 애플리케이션의 '플랫폼'을 설정해 준다.
Android는 '카카오톡 로그인'에 사용될 타겟 플랫폼
Web은 '카카오 페이 결제'에 사용 될 타깃 플랫폼
먼저 Android 플랫폼에 패키지명에
com.test (**안드로이드 프로젝트 생성할 때 같은 패키지명이여야 한다.)
라고 입력 후 저장한다.
이후 Web 플랫폼 등록은
https://www.naver.com
을 입력 후 저장한다.
도메인을 설정하면 'Redirect URI'를 등록해야 된다고 나오는데 이것 또한 설정해준다.
1. 활성화 설정을 'ON'
2. Redirect URI는 https://www.naver.com/oauth
으로 설정하여 저장해준다.
그리고 왼쪽 위 메뉴 탭에서 '동의 항목' 클릭하여
사용자의 닉네임과 프로필 사진을 가져오는 동의 항목 설정을 해준다.
설정 버튼을 클릭 후
간단한 테스트 용 목적을 적어준 뒤 저장을 누른다.
'키 해시' 값을 제외한 모든 설정이 끝났다.
제작 2. 프로젝트 설정 - 모듈
필요한 모듈을 설정하기 위해 Android Project를 만듭니다.
Empty 프로젝트로 생성 후
Name : KakaoAPI
Package name : com.test (Android 플랫폼에서 설정한 package name과 동일해야 함.)
로 설정해준다.
생성된 프로젝트의 build.gradle(Project 수준)에
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
을 작성 후 Sync Now를 눌러준다.
build.gradle(Module 수준)에 minSdkVersion을 19로 올려주고
implementation "com.kakao.sdk:v2-user:2.2.0" // 카카오 로그인
implementation "com.kakao.sdk:v2-talk:2.2.0" // 친구, 메시지(카카오톡)
implementation "com.kakao.sdk:v2-story:2.2.0" // 카카오스토리
implementation "com.kakao.sdk:v2-link:2.2.0" // 메시지(카카오링크)
implementation "com.kakao.sdk:v2-navi:2.2.0" // 카카오내비
을 사진과 같이 추가 후 Sync Now를 눌러준다.
- minSdkVersion을 올려준 이유?
Android SDK의 최저 버전이 '19'부터 지원되기 때문에 API 레벨을 올려줬다.
AndroidManifest.xml에
<uses-permission android:name="android.permission.INTERNET"/>
android:usesCleartextTraffic="true"
사진과 같이 작성 후 저장해준다.
이제 Developers에서 설정해 주지 못했던 '키 해시'값을 설정해 주기 위해 MainActivity.java로 이동한다.
Log.e("Debug", Utility.INSTANCE.getKeyHash(this));
를 입력 후 'Logcat'에 출력되는 키 해시값을 복사한 후
Android 플랫폼 수정에서 키 해시값을 등록한다.
여기까지가 '모듈 수준 설정'입니다.
제작 3. 로그인 구현
로그인을 구현하기 위해서 Redirect URI를 설정한다.
AndroidManifest.xml안에
<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="kakao{NATIVE_APP_KEY}" />
</intent-filter>
</activity>
사진과 같이 작성 후 '{NATIVE_APP_KEY}'값을 수정해야 되는데
내 애플리케이션의 '네이티브 앱 키'를 복사하여 수정해 주면 된다.
이제 로그인을 구현해 보자.
간단한 xml 구성이다. 사용자 이름을 보여줄 TextView와 로그인을 실행할 Button으로 구성했다.
이후 MainActivity.java를 작성한다.
코드를 작성 후 실행해 보면
로그인 버튼 클릭 시 카카오 로그인 창이 나오게 되며
로그인 후 Continue를 클릭하여 완료하면
로그인을 한 사용자의 이름으로 TextView가 변경됩니다.
끝으로...
Kakao SDK를 한번 설정해 두면 여러 가지 기능을 사용할 수 있습니다.
현재 프로젝트는 단순히 로그인만 구현했지만
추가했던 라이브러리를 보면 메시지, 내비게이션 등 여러 가지를 사용할 수 있습니다.
사용 방법은 문서를 보면서 찾아보는 게 가장 좋겠습니다!