페이지 이동경로
  • 문서>
  • Android>
  • v1에서 v2로 마이그레이션

Android

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