v1에서 v2로 마이그레이션
이 문서는 Kakao SDK for Android(이하 Android SDK) 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) |
- |