본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

관련사이트

사이드 메뉴

플랫폼 API

API 제공

전용 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 파일에 필요한 모듈을 추가합니다. 전체 모듈 또는 필요한 모듈만 추가할 수 있습니다.

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을 상속한 클래스를 사용하고 있다면 아래와 같이 샌드박스 페이즈로 설정 및 초기화할 수 있습니다. (참고: 초기화 시 사용 가능한 파라미터)

GlobalApplication.kt
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.xmlapplication에도 Partner SDK 초기화를 수행한 클래스의 이름을 설정해야 합니다. 위 예제에서는 GlobalApplication 클래스에서 초기화를 했으므로 아래와 같이 동일한 이름을 설정에 추가합니다.

AndroidManifest.xml
<application
<!-- android:name 설정 -->
android:name=".GlobalApplication"
<!-- ... -->
>

아래는 Partner SDK 초기화 시 사용할 수 있는 파라미터입니다.

이름타입설명필수
contextContext앱의 컨택스트(context), Context 참고O
appKeyString네이티브 앱 키
특정 페이즈로 초기화하려는 경우, 초기화하려는 페이즈의 앱 키 사용
O
loggingEnabledBooleanSDK의 내부 로그 기능 활성화 여부X
hostsServerHosts특정 페이즈로 초기화하려는 경우, 사용할 페이즈 지정
KakaoPhase에 미리 정의된 값 사용
X
approvalTypeApprovalType다음 서비스 전용, 프로젝트 앱에서만 사용
초기화 시 approvalType 파라미터에 ApprovalType.project()를 전달해 프로젝트 타입으로 설정
X
sdkIdentifierSdkIdentifierKA 헤더 정보에 포함할 서비스 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)에 등록된 앱 키 사용
CBTCBT용 앱, 카카오디벨로퍼스 프로덕션(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-authAuthApiClient카카오 로그인 인증 및 토큰 관리 모듈

특화 기능: 그룹 앱 토큰 발급 API
partner-userUserApiClient카카오 로그인, 사용자 정보 API 모듈

특화 기능: 카카오 및 공동체 전용 사용자 정보, 연령인증 API, 배송지 API
partner-shareShareClient카카오톡 공유 API 모듈

특화 기능: 말풍선 출처 앱 변경
partner-talkTalkApiClient카카오톡 채널, 카카오톡 소셜, 카카오톡 메시지 API 모듈

특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 정보 조회 API
partner-friendPickerClient피커 API 모듈

특화 기능: 앱에 연결되지 않은 친구(초대 친구), 채팅방, 채팅방 멤버 피커

Partner SDK의 일부 모듈은 다른 모듈에 의존성이 있으며, 각 모듈은 설치 시 의존하는 모듈을 함께 설치합니다. 모듈간 의존성 구조는 아래 이미지를 참고합니다.

Partner Android 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)

도움이 되었나요?