v1에서 v2로 마이그레이션
이 문서는 Android SDK(Kakao SDK for Android) v1(2.0.0 미만 버전)에서 v2(2.0.0 이상 버전)로 업그레이드하는 사용자를 위한 참고 정보를 제공합니다.
모듈 구조
Android SDK v2는 Android SDK v1에 비해 간결한 모듈 구조를 갖고 있습니다. Android SDK v2는 카카오 로그인과 공통 및 유틸리티 성격의 기능들을 common
모듈 하나에 모아 제공합니다. 또한 제품 단위로 구성된 모듈별 API는 Client
, 객체 및 구조체 정보는 Model
패키지에 모여 있어 보다 효율적이고 편리하게 사용할 수 있습니다.
카카오 로그인이 필요한 API 사용 시 주의 사항
최신 버전 SDK 사용 시, 카카오 로그인으로 발급받은 액세스 토큰을 전달해야 하는 API를 사용하려면 user
모듈에서 제공하는 카카오 로그인 기능을 함께 구현해야 합니다.
버전별 API 비교
공통
- Android SDK v1
- AndroidManifest.xml에 네이티브 앱 키 설정
KakaoSDK
로 초기화 함수 호출
com.kakao.util
패키지의 Utility
로 키 해시 구하기 함수 호출
- 최신 버전
이름 |
Android SDK v1 |
Android SDK v2 |
초기화 |
init() |
init() |
키 해시 구하기 |
getKeyHash() |
getKeyHash() |
카카오 로그인
- Android SDK v1
- 카카오 로그인 API는
LoginActivity
로 호출
- 액세스 토큰 정보 조회 API는
AuthService
로 호출
- 동의항목 추가 동의 요청 API는
Session
으로 호출
- 로그아웃, 연결 해제, 사용자 정보 조회, 사용자 프로퍼티 저장 API는
UserManagement
로 호출
- 최신 버전
- 카카오 로그인 API는
v2-user
모듈의 UserApiClient
로 호출
- 토큰 존재 여부 조회 API는
AuthApiClient
로 호출
이름 |
Android SDK v1 |
Android SDK v2 |
카카오톡으로 로그인 |
- |
loginWithKakaoTalk(context) |
카카오계정으로 로그인 |
- |
loginWithKakaoAccount(context) |
로그아웃 |
requestLogout() |
logout() |
연결 해제 |
requestUnlink() |
unlink() |
사용자 정보 조회 |
me() |
me() |
사용자 프로퍼티 저장 |
requestUpdateProfile(properties) |
updateProfile() |
동의항목 추가 동의 요청 |
updateScopes(scopes) |
loginWithNewScopes(context, scopes) |
카카오톡 실행 가능 여부 조회 |
- |
isKakaoTalkLoginAvailable() |
액세스 토큰 정보 조회 |
requestAccessTokenInfo() |
accessTokenInfo() |
토큰 존재 여부 조회 |
isOpened() |
hasToken() |
카카오톡 소셜
- Android SDK v1:
KakaoTalkService
로 API 호출
- 최신 버전:
v2-talk
모듈의 TalkApiClient
로 API 호출
이름 |
Android SDK v1 |
Android SDK v2 |
카카오톡 프로필 조회 |
requestProfile() |
profile() |
카카오톡 친구 목록 조회 |
requestAppFriends() |
friends() |
메시지: 카카오톡 공유
- Android SDK v1
KakaoLinkService
로 API 호출
- 사용자 기기에 카카오톡 미설치 시 내부적으로 웹뷰로 메시지 전달됨
- 최신 버전
v2-share
모듈의 ShareClient
로 API 호출
- 메시지 발송 API는
context
전달 필요
- 사용자 기기에 카카오톡 미설치 시 웹뷰 또는 기본 브라우저로 공유되도록 구현 필요
이름 |
Android SDK v1 |
Android SDK v2 |
카카오톡 앱으로 공유 가능 여부 확인하기 |
- |
isKakaoTalkSharingAvailable() |
기본 메시지 발송 |
sendDefault(template) |
shareDefault(context, defaultTemplate) |
스크랩 메시지 발송 |
sendScrapWithURL(url) |
shareScrap(context, url) |
사용자 정의 메시지 발송 |
sendCustomWithTemplateId(templateId) |
shareCustom(context, templateId) |
이미지 업로드 |
uploadImage(imageFile) |
uploadImage(file) |
이미지 스크랩 |
scrapImage(imageUrl) |
scrapImage(url) |
메시지: 카카오톡
- Android SDK v1:
KakaoTalkService
로 API 호출
- 최신 버전:
v2-talk
모듈의 TalkApiClient
로 API 호출
이름 |
Android SDK v1 |
Android SDK v2 |
나에게 기본 메시지 발송 |
requestSendMemo(template) |
sendDefaultMemo(template) |
나에게 스크랩 메시지 발송 |
requestSendMemo(url) |
sendScrapMemo(url) |
나에게 사용자 정의 메시지 발송 |
requestSendMemo() |
sendCustomMemo(templateId) |
친구에게 기본 메시지 발송 |
sendMessageToFriends(template, uuids) |
sendDefaultMessage(template, receiverUuids) |
친구에게 스크랩 메시지 발송 |
sendMessageToFriend(url, uuids) |
sendScrapMessage(url, receiverUuids) |
친구에게 사용자 정의 메시지 발송 |
sendMessageToFriends(templateId, uuids) |
sendCustomMessage(templateId, receiverUuids) |
카카오톡 채널
- Android SDK v1
- 카카오톡 채널 추가, 카카오톡 채널 채팅 API는
PlusFriendService
로 호출
- 카카오톡 채널 관계 조회 API는
KakaoTalkService
로 호출
- 최신 버전
- 카카오톡 채널 추가, 카카오톡 채널 채팅 API는
v2-talk
모듈의 TalkApiClient
로 호출
- 카카오톡 채널 관계 조회 API는 카카오 로그인 구현 필요
이름 |
Android SDK v1 |
Android SDK v2 |
카카오톡 채널 추가 |
addFriend(plusFriendId) |
addChannelUrl(channelPublicId) |
카카오톡 채널 채팅 |
chat(plusFriendId) |
channelChatUrl(channelPublicId) |
카카오톡 채널 관계 조회 |
requestPlusFriends() |
channels() |
카카오싱크
- Android SDK v1
- 배송지 조회, 서비스 약관 동의 내역 조회 API는
UserManagement
로 호출
- 서비스 약관 선택해 동의 요청 API는
LoginActivity
로 호출
- 최신 버전: 배송지 조회, 서비스 약관 동의 내역 조회, 서비스 약관 선택해 동의 요청 API 모두
v2-user
모듈의 UserApiClient
로 API 호출
이름 |
Android SDK v1 |
Android SDK v2 |
배송지 조회 |
shippingAddresses() |
shippingAddresses() |
서비스 약관 동의 내역 조회 |
serviceTerms() |
serviceTerms() |
서비스 약관 선택해 동의 요청 |
- |
loginWithKakaoTalk(context, serviceTerms) loginWithKakaoAccount(context, serviceTerms) |
카카오내비
- Android SDK v1
KakaoNaviService
로 API 호출
- 파라미터 설정은 각 클래스
newBuilder()
와 setNaviOptions()
메소드 사용
- 최신 버전
v2-navi
모듈의 NaviClient
로 API 호출
- 파라미터 설정은 각 클래스 생성자 사용
이름 |
Android SDK v1 |
Android SDK v2 |
길 안내 |
navigate(destination) |
navigateIntent(location, naviOption) |
목적지 공유 |
shareDestination(destination) |
shareDestinationIntent(location, naviOption) |
길 안내 조건 설정 |
newBuilder() setNaviOptions(options) |
NaviOption() |
목적지 정보 설정 |
newBuilder() setNaviOptions(options) |
Location() |
* navigateWebUrl(location, naviOption): Deprecated, 웹 길 안내 서비스 종료, 공지 참고
푸시 알림
- Android SDK v1:
PushService
로 API 호출
- 최신 버전: 푸시 알림 API 미지원, REST API 사용 가능
이름 |
Android SDK v1 |
Android SDK v2 |
푸시 토큰 등록 |
registerPushToken(pushToken, deviceId) |
- |
푸시 토큰 조회 |
getPushTokens() |
- |
푸시 토큰 폐기 |
deregisterPushToken(deviceId) |
- |