페이지 이동경로
  • 문서>
  • 시작하기

시작하기

Legacy Android

iOS, Android, JavaScript 개발 환경에서는 카카오디벨로퍼스(Kakao Developers, 이하 개발자 웹사이트) 애플리케이션(이하 앱)에 Kakao SDK(Software Development Kit)를 연동해 카카오 API를 사용할 수 있습니다.

이 문서는 Kakao SDK for Android v1(이하 Legacy SDK) 사용법을 설명합니다.

잠깐! 플랫폼 추가하셨나요?

다음 과정을 진행하려면 개발자 웹사이트 앱 설정에 Android 플랫폼을 추가하고 패키지명을 등록해야 합니다. 앱 설정에 플랫폼 및 패키지명이 등록되어 있지 않은 앱에서 API 호출 시 에러가 발생합니다. 또한 플랫폼 등록 시 발급되는 네이티브 앱 키가 프로젝트 설정에 필요합니다.

플랫폼 추가 방법은 애플리케이션 등록을 참고합니다.

프로젝트에 Legacy SDK 적용하기

Legacy SDK는 gradle 기반으로 만들어져 안드로이드 스튜디오(Android Studio) IDE에서 최적화된 환경을 제공합니다. 따라서 이 문서에서는 안드로이드 스튜디오 IDE에서 Legacy SDK를 사용하는 방법을 안내합니다.

파일 다운로드 및 변경이력 확인은 Legacy SDK 다운로드 페이지에서 가능합니다.

Step1. build.gradle(Project)에서 카카오 레파지토리 설정
subprojects {
  repositories {
    google()
    jcenter()
    maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
  }
}

안드로이드 스튜디오의 내 프로젝트 Maven 설정을 통해 Legacy SDK를 import 할 수 있습니다. 이 방법을 사용하면 따로 파일을 다운로드 받지 않고도 편리하게 내 프로젝트에서 Legacy SDK를 이용할 수 있습니다.

위 설정을 통해 레파지토리(Repository, 저장소) 설정을 하지 않으면 안드로이드 스튜디오가 Android SDK를 찾을 수 없기 때문에 "Failed to resolve: com.kakao.sdk:usermgmt:1.30.7" 에러가 발생합니다.

Step 2. build.gradle(Module)에 디펜던시 설정
dependencies {
    // 카카오 로그인
    implementation group: 'com.kakao.sdk', name: 'usermgmt', version: '1.30.7'

    // 카카오톡
    implementation group: 'com.kakao.sdk', name: 'kakaotalk', version: '1.30.7'

    // 카카오스토리
    implementation group: 'com.kakao.sdk', name: 'kakaostory', version: '1.30.7'

    // 카카오톡 공유
    implementation group: 'com.kakao.sdk', name: 'kakaolink', version: '1.30.7'

    // 카카오내비
    implementation group: 'com.kakao.sdk', name: 'kakaonavi', version: '1.30.7'
}

앱의 build.gradle 파일에 필요한 모듈에 대한 디펜던시(Dependencies, 의존성)를 설정합니다. 서비스에서 사용하는 기능이 아닌 모듈까지 모두 설정할 필요는 없습니다. 일반적으로는 카카오 로그인, 카카오톡 공유, 카카오톡이 필요합니다.

Eclipse에서는 Legacy SDK를 어떻게 사용하나요?

Legacy SDK 소스를 통한 Eclipse 개발 환경 지원은 더 이상 공식적으로 지원하지 않습니다. Eclipse에서 Legacy SDK를 사용하려면 Gradle이나 Maven 프로젝트를 사용해야 합니다.

앱 키 설정

개발자 웹사이트 앱 정보의 네이티브 앱 키(NATIVE APP KEY)를 AndroidManifest.xml에서 메타데이터(meta-data)로 지정합니다. 카카오 SDK는 API 호출 시 지정된 앱 키로 권한 인증을 합니다.

앱 키 추가와 더불어 앱에서 인터넷 사용을 허용하기 위해서 uses-permission 속성에 android.permission.INTERNET을 지정합니다.

<manifest ...>
<uses-permission android:name="android.permission.INTERNET" /> <!-- 인터넷 권한 추가 -->
<application>

    ...

    <meta-data
        android:name="com.kakao.sdk.AppKey"
        android:value="${NATIVE_APP_KEY}" /> <!-- 네이티브 앱 키 설정 -->
</application>

키 해시 등록

카카오 API는 앱에서 추출한 키 해시(Key Hash)를 이용하여 악성 앱을 판별합니다. API 호출 시 인증 값으로 사용된 네이티브 앱 키와 키 해시가 개발자 웹사이트의 [앱 키]에서 설정한 값과 일치하는지 확인하여 인증합니다. 키 해시는 디버그 키 해시(Debug key hash)와 릴리즈 키 해시(Release key hash), 두 가지가 있습니다.

디버그 키 해시와 릴리즈 키 해시 값을 등록하는 방법은 최신 버전 SDK 가이드의 키 해시 등록을 참고합니다.

참고: SDK를 통해 키 해시 구하기

카카오 SDK를 통해서도 키 해시 확인이 가능합니다. com.kakao.util 패키지에서 제공하는 편의 기능 중 getKeyHash() 함수를 사용하여 키 해시 값을 문자열(String)로 구할 수 있습니다.

String keyHash = com.kakao.util.helper.Utility.getKeyHash(this /* context */);

Legacy SDK 초기화

Legacy SDK를 앱과 연결하는 과정입니다. KakaoAdapter 객체를 사용해 Legacy SDK에 필요한 정보를 제공할 수 있습니다.

앱이 가진 정보를 얻기 위한 인터페이스(interface)인 IApplicationConfig, 로그인 세션(Session)을 생성할 때 필요한 옵션을 얻는 추상 클래스(abstract class)인 ISessionConfig를 구현합니다. 카카오 로그인 설정을 담은 ISessionConfigKakaoAdapter에 기본 설정되어 있으며, 설정 변경이 필요할 때 상속해서 사용합니다.

IApplicationConfig

Name Return Description
getApplicationContext Context Application Context

KakaoAdapter

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();

        // SDK 초기화
        KakaoSDK.init(new KakaoAdapter() {

            @Override
            public IApplicationConfig getApplicationConfig() {
                return new IApplicationConfig() {
                    @Override
                    public Context getApplicationContext() {
                        return MyApplication.this;
                    }
                };
            }
        });
    }
}

더보기