페이지 이동경로
  • 문서>
  • 카카오톡 소셜>
  • iOS

카카오톡 소셜

iOS

이 문서는 Kakao SDK for iOS(이하 iOS SDK)를 사용한 카카오톡 소셜 API 구현 방법을 안내합니다.

애플리케이션 설정 확인

이 기능을 사용하려면 카카오디벨로퍼스(Kakao Developers, 이하 개발자 웹사이트) 애플리케이션(이하 앱) 설정에 iOS 플랫폼 및 번들 ID 등 정보가 등록되어 있어야 합니다. 자세한 내용은 애플리케이션 등록을 참고합니다.

이 문서에 사용된 태그

Tag Description
로그인 필수 카카오 로그인이 필요한 API를 의미합니다. 카카오 로그인을 먼저 구현하고, 카카오 로그인을 통해 발급 받은 액세스 토큰(Access Token)을 이용하여 해당 API를 호출해야 합니다.

시작하기 전에

카카오톡 소셜 API는 카카오톡 모듈인 KakaoSDKTalkRxKakaoSDKTalk가 제공합니다. 설치하기를 참고하여 카카오 로그인, 사용자 인증, 카카오톡 모듈을 모두 설치합니다.

모듈 설치 후 카카오 로그인과 카카오톡 소셜 API를 사용하려면 다음과 같이 import합니다.

Swift
RxSwift
import KakaoSDKAuth
import KakaoSDKUser
import KakaoSDKTalk
import KakaoSDKAuth
import RxKakaoSDKAuth

import KakaoSDKUser
import RxKakaoSDKUser

import KakaoSDKTalk
import RxKakaoSDKTalk

프로필 가져오기 로그인 필수

동의 항목 설정 필요

이 API를 사용하려면 동의 항목 설정을 참고하여 '프로필' 동의 항목을 설정해야 합니다.

현재 로그인한 사용자의 카카오톡 프로필 정보를 받습니다. 카카오톡 API를 제공하는 TalkApiprofile() API를 호출합니다.

Swift
RxSwift
TalkApi.shared.profile {(profile, error) in
    if let error = error {
        print(error)
    }
    else {
        print("profile() success.")

        //do something
        _ = profile                
    }
}
// Class member property
let disposeBag = DisposeBag()

TalkApi.shared.rx.profile()
    .retry(when: Auth.shared.rx.incrementalAuthorizationRequired())
    .subscribe (onSuccess:{ (profile) in
        print("success.")

        //do something
        _ = profile   

    }, onFailure: {error in
        print(error)
    })
    .disposed(by: disposeBag)

요청이 성공하면 TalkProfile 객체로 카카오톡 프로필 정보를 받습니다. 카카오톡 프로필 정보의 구성에 대해서는 REST API 가이드 또는 레퍼런스를 참고합니다.

친구 목록 가져오기 로그인 필수

동의 항목 설정 및 권한 필요

이 API를 사용하려면 동의 항목 설정을 참고하여 '카카오 서비스 내 친구목록(프로필사진, 닉네임, 즐겨찾기 포함)' 동의 항목을 설정해야 합니다. 또한 이 API는 사용 권한이 필요합니다. 앱에 사용 권한이 부여되기 전에는 팀원을 대상으로만 동작하므로, 카카오톡 사용 권한 신청을 참고해 사용 권한을 신청해야 합니다.

현재 로그인한 사용자의 카카오톡 친구 목록을 불러옵니다. TalkApifriends() API를 호출합니다. 요청 시 친구 목록의 정렬 순서, 한 페이지당 친구 수를 선택적으로 지정할 수 있습니다. 파라미터 없이 요청 시 기본 설정대로 요청이 전송됩니다.

Parameter
Name Type Description Required
offset Int 친구 리스트 시작 지점(기본값: 0) X
limit Int 한 페이지에 가져올 친구 최대 수(기본값: 10, 최댓값: 100) X
order Order 친구 리스트 정렬 순서, 오름차순("asc") 또는 내림차순("desc")(기본값 "asc") X
friendOrder FriendOrder 친구 목록 정렬 시, 즐겨찾기 친구의 우선 정렬 또는 닉네임 순서 정렬로 기준 설정
즐겨찾기 친구(Favorite) 또는 카카오톡 닉네임(Nickname)(기본값 Favorite)
X
Sample: 기본 설정으로 카카오톡 친구 목록 가져오기
Swift
RxSwift
TalkApi.shared.friends {(friends, error) in
    if let error = error {
        print(error)
    }
    else {
        //do something
        _ = friends        
    }
}
// Class member property
let disposeBag = DisposeBag()

TalkApi.shared.rx.friends()
    .retry(when: Auth.shared.rx.incrementalAuthorizationRequired())
    .subscribe (onSuccess:{ (friends) in
        //do something
        _ = friends        
        
    }, onFailure: {error in
        print(error)
    })
    .disposed(by: disposeBag)

요청 성공 시 Friends 객체를 응답으로 받습니다. Friends 객체는 전체 친구 수인 totalCount와 각 친구의 정보를 담은 Friend 객체의 리스트(List)인 elements, 즐겨찾기한 친구 수인 favoriteCount로 구성되어 있습니다. 카카오톡 친구 정보 구성에 대해서는 REST API 가이드 또는 레퍼런스를 참고합니다.

만약 사용자가 카카오톡 친구 목록 제공에 동의하지 않아 요청이 실패한 경우, 다음 내용을 참고해 사용자 동의를 받은 후 다시 요청합니다:

  • 동의 항목에 '카카오 서비스 내 친구목록(프로필사진, 닉네임, 즐겨찾기 포함)'을 사용하도록 설정했는지 확인합니다.
  • 추가 항목 동의 받기를 사용해 '카카오 서비스 내 친구목록(프로필사진, 닉네임, 즐겨찾기 포함)'의 사용자 동의를 받습니다.

Legacy

친구의 Legacy Kakao SDK for iOS(이하 Legacy iOS SDK) 개발 가이드는 다음 링크에서 확인할 수 있습니다. 추후 Legacy iOS SDK에 대한 지원이 중단될 수 있으므로, 가급적 빠른 시일 내에 최신 버전 iOS SDK로 변경할 것을 권장합니다.

더보기