사이드 메뉴
커뮤니케이션
API 제공
어드민 API
시작하기
이 문서는 Partner Android SDK(Kakao Partner SDK for Android) 사용 방법을 안내합니다. 공통 설명은 오픈 문서를 참고합니다.
Partner SDK의 모든 모듈은 v2-partner-common에 의존하며, 각각의 기능별로 매핑(Mapping)되는 Open SDK 모듈에 의존합니다. 예를 들어 v2-partner-user-rx 모듈은 v2-user-rx 모듈에 의존합니다.
모듈 레벨의 build.gradle.kts 파일에 필요한 모듈을 추가합니다. 전체 모듈 또는 필요한 모듈만 추가할 수 있습니다.
dependencies {implementation("com.kakao.sdk:v2-partner-all:${LATEST_VERSION}") // 전체 모듈 설치, 2.11.0 버전부터 지원implementation("com.kakao.sdk:v2-partner-common:${LATEST_VERSION}") // 필수 요소를 담은 공통 모듈implementation("com.kakao.sdk:v2-partner-user:${LATEST_VERSION}") // 카카오 로그인 API 모듈implementation("com.kakao.sdk:v2-partner-share:${LATEST_VERSION}") // 카카오톡 공유 API 모듈implementation("com.kakao.sdk:v2-partner-talk:${LATEST_VERSION}") // 카카오톡 채널, 카카오톡 소셜, 카카오톡 메시지 API 모듈implementation("com.kakao.sdk:v2-partner-friend:${LATEST_VERSION}") // 피커 API 모듈implementation("com.kakao.sdk:v2-navi:${LATEST_VERSION}") // 카카오내비 API 모듈}
Partner SDK를 사용하려면 설치 후 init() 메서드에 카카오디벨로퍼스 앱의 네이티브 앱 키를 포함해 초기화해야 합니다. 네이티브 앱 키는 앱 관리 페이지의 [앱] > [플랫폼 키]에서 확인할 수 있습니다.
Partner SDK는 개발 환경을 위해 페이즈 설정 기능을 제공합니다. 초기화 시 페이즈 설정이 가능하며, 각 페이즈에 맞는 카카오디벨로퍼스 앱의 네이티브 앱 키를 사용해야 하는 점에 주의합니다.
Application을 상속한 클래스를 사용하고 있다면 아래와 같이 샌드박스 페이즈로 설정 및 초기화할 수 있습니다. (참고: 초기화 시 사용 가능한 파라미터)
class GlobalApplication : Application() {override fun onCreate() {super.onCreate()// 다른 초기화 코드들// Kakao SDK 초기화KakaoSdk.init(context = this,appKey = ${SANDBOX_NATIVE_APP_KEY}, // Sandbox 설정으로 SDK 초기화customScheme = ${CUSTOM_SCHEME},hosts = ServerHosts.withPhase(KakaoPhase.SANDBOX), // Sandbox 설정으로 SDK 초기화sdkIdentifier = SdkIdentifier.create(mapOf("${CUSTOM_IDENTIFIER_KEY}" to "${CUSTOM_IDENTIFIER_VALUE}")) // sdkIdentifier 파라미터로 특정 서비스 SDK를 식별할 수 있는 키, 값 전달 가능)}}
AndroidManifest.xml의 application에도 Partner SDK 초기화를 수행한 클래스의 이름을 설정해야 합니다. 위 예제에서는 GlobalApplication 클래스에서 초기화를 했으므로 아래와 같이 동일한 이름을 설정에 추가합니다.
<application<!-- android:name 설정 -->android:name=".GlobalApplication"<!-- ... -->>
아래는 Partner SDK 초기화 시 사용할 수 있는 파라미터입니다.
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| context | Context | 앱의 컨택스트(context), Context 참고 | O |
| appKey | String | 네이티브 앱 키 특정 페이즈로 초기화하려는 경우, 초기화하려는 페이즈의 앱 키 사용 | O |
| loggingEnabled | Boolean | SDK의 내부 로그 기능 활성화 여부 | X |
| hosts | ServerHosts | 특정 페이즈로 초기화하려는 경우, 사용할 페이즈 지정KakaoPhase에 미리 정의된 값 사용 | X |
| approvalType | ApprovalType | 다음 서비스 전용, 프로젝트 앱에서만 사용 초기화 시 approvalType 파라미터에 ApprovalType.project()를 전달해 프로젝트 타입으로 설정 | X |
| sdkIdentifier | SdkIdentifier | KA 헤더 정보에 포함할 서비스 SDK 식별자 여러 개의 서비스 SDK 정보 전달 가능 카카오게임 SDK 등 서비스 SDK에서 Partner SDK를 사용할 경우, 요청 로그에서 특정 서비스 SDK의 버전이나 종류를 식별하기 위해 사용 (예: sdkIdentifier = SdkIdentifier.create(mapOf("game_sdk" to "3.0.0"))) | X |
Partner SDK의 페이즈는 아래와 같이 4가지로 정의되어 있습니다.
| 페이즈 | 앱 키 |
|---|---|
| DEV | 개발 중 테스트용 앱, 카카오디벨로퍼스 알파(Alpha) 페이즈(http://alpha-developers.kakao.com)에 등록된 앱 키 사용 |
| SANDBOX | 샌드박스 테스트용 앱, 카카오디벨로퍼스 샌드박스(Sandbox) 페이즈(http://sandbox-developers.kakao.com)에 등록된 앱 키 사용 |
| CBT | CBT용 앱, 카카오디벨로퍼스 프로덕션(Production) 페이즈(http://developers.kakao.com)에 등록된 앱 키 사용 |
| PRODUCTION | 프로덕션 앱, 카카오디벨로퍼스 프로덕션 페이즈(http://developers.kakao.com)에 등록된 앱 키 사용 |
카카오 로그인을 사용하려면 Android Manifest.xml에 리다이렉트 URI 설정을 페이즈별로 모두 추가해야 합니다.
<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" /><!-- 리다이렉트 URI: "kakao${NATIVE_APP_KEY}://oauth" --><!-- 모든 페이즈 스킴 등록 --><data android:host="oauth"android:scheme="kakao${DEV_NATIVE_APP_KEY}" /><data android:host="oauth"android:scheme="kakao${SANDBOX_NATIVE_APP_KEY}" /><data android:host="oauth"android:scheme="kakao${PRODUCTION_NATIVE_APP_KEY}" /></intent-filter></activity>
카카오톡 메시지 API를 사용하고 있다면 앱 링크를 위한 커스텀 URL 스킴도 페이즈별로 모두 등록해야 합니다. 커스텀 URL 스킴 설정을 참고합니다.
Android SDK가 제공하는 카카오 및 공동체 전용 모듈 정보는 아래와 같습니다. 일부 특화 기능은 권한이 있어야 사용할 수 있습니다. 오픈 API 사용 서비스를 위한 공개 SDK의 모듈 정보는 모듈 정보에서 확인할 수 있습니다.
| 모듈 | 클라이언트 | 설명 |
|---|---|---|
partner-common | - | 필수 요소를 담은 공통 모듈 특화 기능: 페이즈 지정 초기화 |
partner-auth | AuthApiClient | 카카오 로그인 인증 및 토큰 관리 모듈 특화 기능: 그룹 앱 토큰 발급 API |
partner-user | UserApiClient | 카카오 로그인, 사용자 정보 API 모듈 특화 기능: 카카오 및 공동체 전용 사용자 정보, 연령인증 API, 배송지 API |
partner-share | ShareClient | 카카오톡 공유 API 모듈 특화 기능: 말풍선 출처 앱 변경 |
partner-talk | TalkApiClient | 카카오톡 채널, 카카오톡 소셜, 카카오톡 메시지 API 모듈 특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 정보 조회 API |
partner-friend | PickerClient | 피커 API 모듈 특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 피커 |
Partner SDK의 일부 모듈은 다른 모듈에 의존성이 있으며, 각 모듈은 설치 시 의존하는 모듈을 함께 설치합니다. 모듈간 의존성 구조는 아래 이미지를 참고합니다.

partner-commonㄴ common (dependency)partner-authㄴ partner-common (dependency)ㄴ auth (dependency)partner-userㄴ partner-common (dependency)ㄴ partner-auth (dependency)ㄴ user (dependency)partner-shareㄴ partner-common (dependency)ㄴ share (dependency)partner-talkㄴ partner-common (dependency)ㄴ talk (dependency)partner-friendㄴ partner-common (dependency)ㄴ user (dependency)