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

kakao developers

관련사이트

사이드 메뉴

플랫폼 API

API 제공

전용 API

어드민 API

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

현재 로그인한 사용자의 카카오톡 프로필 정보를 가져옵니다.

자세한 안내와 예제는 카카오톡 프로필 조회를 참고합니다.

레퍼런스앱 설정
[SDK, RxSDK] selectFriend()
[SDK] PickerFriendRequestParams
[SDK] SelectedUsers
설치
모듈 설정
초기화

카카오톡의 친구 목록을 불러와 친구 피커를 표시하고, 사용자가 선택한 친구의 정보를 제공합니다.

selectFriend()를 호출해 친구 피커를 표시합니다.

viewType으로 화면 표시 형태를 풀 스크린(.full) 또는 팝업 뷰(.popup)로 지정할 수 있습니다.

친구 피커의 종류(selectionMode)와 선택 가능 대상 수(minPickableCount, maxPickableCount)는 설정 객체인 SelectParams를 생성해 selectParams에 지정합니다.

selectionMode.single(싱글 피커)인 경우 최소, 최대 선택 수는 1로 고정됩니다. selectionMode.multiple(멀티 피커)인 경우 선택 가능 대상의 설정 범위는 최소 1, 최대 100(기본값: 최소 1, 최대 30)입니다. SelectParams 생성 방법을 함께 참고합니다.

이 외에 화면 방향, 검색 기능 등 세부적인 설정은 PickerFriendRequestParams로 지정할 수 있습니다. 자세한 파라미터 정보는 예제와 레퍼런스에서 확인합니다.

iOS 친구 피커는 SelectParams를 직접 생성하거나 헬퍼 메서드를 사용해 생성할 수 있습니다. selectParams에 직접 생성한 값 또는 friend() 메서드로 생성한 값을 전달해야 합니다. 메서드 사용 시 미지정된 선택 파라미터에는 기본 값이 적용됩니다. 직접 생성은 아래 예제, 메서드 사용은 요청 예제를 참고합니다.

// SelectParams 직접 생성 예제
let selectParams = SelectParams(selectionMode: .multiple, maxPickableCount: 7)
let requestParams = PickerFriendRequestParams(selectParams: selectParams)

사용자가 선택한 친구 정보는 SelectedUsers 객체로 전달됩니다. 응답은 선택한 사용자 수, 선택한 사용자 정보를 담은 목록을 포함합니다. 친구가 정보 제공에 동의하지 않았거나, 앱이 [미동의 사용자 프로필] 권한이 없는 경우 profileNickname마스킹 처리된 닉네임이 반환됩니다. 조건과 상관 없이 마스킹된 프로필 닉네임인 maskingProfileNickname은 항상 포함됩니다. 응답 제공에 필요한 동의항목피커: 추가 권한 신청을 참고합니다.

let pickerFriendRequestParams = PickerFriendRequestParams(
title: "싱글 피커", // 피커 이름
friendFilter: PickerFriendFilter.registered, // 친구 목록 필터링 설정
viewAppearance: .auto, // 피커 화면 모드
orientation: .auto, // 피커 화면 방향
selectParams: .friend(
selectionMode: .single
.single: 싱글 피커, .multiple: 멀티 피커
)
)
PickerApi.shared.selectFriend(
params: pickerFriendRequestParams,
viewType: .full
.full: 전체 화면, .popup: 팝업 뷰
) { [weak self] selectedUsers, error in
if let error = error {
print(error)
} else {
print("selectFriend(params:) success.")
// 성공 시 동작 구현
_ = selectedUsers
}
}

파라미터를 사용해 특정 조건을 만족하는 사용자만 친구 피커에 표시할 수 있습니다.

아래는 앱과 연결되어 있고, iOS 기기를 사용하는 한국 사용자만 친구 목록에 표시하도록 하는 예제입니다.

let pickerFriendRequestParams = PickerFriendRequestParams(
title: "멀티 피커", // 피커 이름
friendFilter: PickerFriendFilter.registered, // 친구 목록 필터링 설정
usingOsFilter: .ios, // 친구의 카카오톡 가입 기기 OS 필터링 설정
countryCodeFilters: ["kr"], // 국가 코드 필터링 설정
maxPickableCount: 5, // 선택 가능한 최대 대상 수
minPickableCount: 1) // 선택 가능한 최소 대상 수
PickerApi.shared.selectFriends(params: pickerFriendRequestParams) { ... }

친구 초대 기능 구현을 위해 미동의 친구 목록을 표시하려면 friendFilterdisplayAllProfile 파라미터를 사용합니다.

미동의 친구 목록, 미동의 사용자의 전체 프로필을 제공받으려면 권한을 받아야 합니다. 미동의 사용자 프로필을 마스킹 처리 없이 피커에 표시하려면 displayAllProfile 파라미터 값을 true로 지정합니다.

let pickerFriendRequestParams = PickerFriendRequestParams(
title: "친구 초대", // 피커 이름
friendFilter: .invitable, // 친구 목록 필터링 설정
displayAllProfile: true, // 미동의 사용자 프로필 표시 설정
maxPickableCount: 5, // 선택 가능한 최대 대상 수
minPickableCount: 1) // 선택 가능한 최소 대상 수
PickerApi.shared.selectFriends(params: pickerFriendRequestParams) { ... }

피커에서 특정 조건에 해당하는 친구를 사용자가 선택할 수 없도록 제한하려면 disableSelectOptions 파라미터를 사용합니다. 자세한 정보는 선택 가능한 대상 제한을 참고합니다.

아래는 사용자가 이미 초대한 친구를 선택할 수 없도록 설정하는 예제입니다.

// 선택 불가로 설정할 사용자 UUID 목록
let uuids = ["${USER_UUID_1}", "${USER_UUID_2}"]
let disableSelectOptions = [
DisableSelectOption(
// 서비스에서 직접 설정한 선택 불가 원인 적용
reason :.custom,
// 친구 피커에 출력할 선택 불가 원인 문구
message : "초대 완료",
// 선택 불가로 설정할 사용자 UUID 목록
uuids : uuids
)
]
let pickerFriendRequestParams = PickerFriendRequestParams(
title : "친구 선택",
disableSelectOptions : disableSelectOptions
)
PickerApi.shared.selectFriends(params : pickerFriendRequestParams) { ... }
레퍼런스앱 설정
[SDK, RxSDK] selectChat()
[SDK] PickerChatRequestParams
[SDK] SelectedUsers
[SDK] SelectedChats
설치
모듈 설정
초기화

카카오톡 채팅방 목록을 불러와 채팅방 피커를 표시하고, 사용자가 선택한 채팅방의 정보를 제공합니다.

selectChat()를 호출해 채팅방 피커를 표시합니다.

viewType으로 화면 표시 형태를 풀 스크린(.full) 또는 팝업 뷰(.popup)로 지정할 수 있습니다.

채팅방 피커의 종류(selectionMode)와 선택 가능 대상 수(minPickableCount, maxPickableCount)는 설정 객체인 SelectParams를 생성해 아래 경우별 파라미터에 지정해야 합니다.

  • selectionType.chat(채팅방만 선택)인 경우: chatSelectParams
  • selectionType.chatMember(채팅방 선택 후 멤버 선택)인 경우: chatMemberSelectParams

selectionMode.single(싱글 피커)인 경우 최소, 최대 선택 수는 1로 고정됩니다. selectionMode.multiple(멀티 피커)인 경우 채팅방 피커의 설정 범위는 최소 1, 최대 10(기본값: 최소 1, 최대 10), 채팅방 멤버 피커의 설정 범위는 최소 1, 최대 100(기본값: 최소 1, 최대 30)입니다. SelectParams 생성 방법을 함께 참고합니다.

이 외에 화면 방향, 검색 기능 등 세부적인 설정은 PickerChatRequestParams로 지정할 수 있습니다. 자세한 파라미터 정보는 예제와 레퍼런스에서 확인합니다.

iOS 채팅방 피커는 SelectParams를 직접 생성하거나 헬퍼 메서드를 사용해 생성할 수 있습니다.

채팅방 피커는 chatSelectParams에 직접 생성한 값 또는 chat() 메서드로 생성한 값을, 채팅방 멤버 피커는 chatMemberSelectParamsSelectParams를 직접 생성한 값 또는 chatMember() 메서드로 생성한 값을 전달해야 합니다.

메서드 사용 시 미지정된 선택 파라미터에는 기본 값이 적용됩니다. 직접 생성은 아래 예제, 메서드 사용은 요청 예제를 참고합니다.

// 채팅방 피커의 SelectParams 직접 생성 예제
let chatSelectParams = SelectParams(selectionMode: .multiple, maxPickableCount: 7)
let requestParams = PickerChatRequestParams(selectionType: .chat, chatSelectParams: chatSelectParams)
// 채팅방 멤버 피커의 SelectParams 직접 생성 예제
let chatMemberSelectParams = SelectParams(selectionMode: .multiple, maxPickableCount: 7)
let requestParams = PickerChatRequestParams(selectionType: .chatMember, chatMemberSelectParams: chatMemberSelectParams)

사용자가 선택한 채팅방 정보는 SelectedChats 객체로 전달됩니다. 응답은 채팅방 ID, 타입, 멤버 수 등을 포함합니다.

let pickerChatRequestParams = PickerChatRequestParams(
selectionType: .chat,
채팅방 탭 동작 - .chat: 채팅방 피커, .chatMember: 채팅방 멤버 피커
title: "채팅방 피커", // 피커 이름
chatFilters: [.regular], // 채팅방 목록 필터링 설정
chatSelectParams: .chat(
selectionMode: .single
.single: 싱글 피커, .multiple: 멀티 피커
)
)
PickerApi.shared.selectChat(
params: pickerChatRequestParams,
viewType: .full
.full: 전체 화면, .popup: 팝업 뷰
) { selectedUsers, selectedChats, error in
if let error = error {
print(error)
} else {
print("selectChat(params:) success.")
// 성공 시 동작 구현
_ = selectedChats
}
}

chatFilters 파라미터로 특정 타입의 채팅방만 채팅방 피커에 표시할 수 있습니다.

아래는 오픈 채팅이 아닌 일반 채팅방만 표시하도록 하는 예제입니다.

let pickerChatRequestParams = PickerChatRequestParams(
selectionType: .chat,
채팅방 탭 동작 - .chat: 채팅방 피커, .chatMember: 채팅방 멤버 피커
title: "채팅방 피커", // 피커 이름
chatFilters: [.regular]) // 채팅방 목록 필터링 설정
PickerApi.shared.selectChat(params: pickerChatRequestParams, viewType: .full) { ... }

사용자가 채팅방을 선택 후 해당 채팅방 안의 특정 멤버를 선택하도록 하려면, 아래와 같이 파라미터를 지정해 요청합니다.

  • selectionType: .chatMember
  • chatMemberSelectParams: 내부 파라미터(selectionMode, maxPickableCount, minPickableCount)를 필요 기능에 해당하는 값으로 포함 필요
  • chatFilters: 값에 open 지정 불가

미동의 친구 목록, 미동의 사용자의 전체 프로필을 제공받으려면 권한을 받아야 합니다. 미동의 사용자 프로필을 마스킹 처리 없이 피커에 표시하려면 displayAllProfile 파라미터 값을 true로 지정합니다.

사용자가 선택한 채팅방 멤버 정보는 SelectedUsers 객체로 전달됩니다.

let pickerChatRequestParams = PickerChatRequestParams(
selectionType: .chatMember,
채팅방 탭 동작 - .chat: 채팅방 피커, .chatMember: 채팅방 멤버 피커
title: "채팅방 멤버 피커", // 피커 이름
chatFilters: [.regular], // 채팅방 목록 필터링 설정
chatMemberSelectParams: .chatMember(
selectionMode: .single
.single: 싱글 피커, .multiple: 멀티 피커
)
)
PickerApi.shared.selectChat(
params: pickerChatRequestParams,
viewType: .full
.full: 전체 화면, .popup: 팝업 뷰
) { selectedUsers, selectedChats, error in
if let error = error {
print(error)
} else {
print("selectChat(params:) success.")
// 성공 시 동작 구현
_ = selectedChats
}
}
레퍼런스앱 설정
[SDK, RxSDK] select()
[SDK] PickerTabRequestParams
[SDK] SelectedUsers
[SDK] SelectedChats
설치
모듈 설정
초기화

카카오톡 친구 목록과 채팅방 목록을 불러와 탭 피커를 표시하고, 사용자가 선택한 친구나 채팅방의 정보를 제공합니다.

select()를 호출해 탭 피커를 표시합니다. 탭 피커는 친구 목록, 채팅방 목록을 탭 형태로 분할해 표시합니다.

initialPickerTab으로 탭 피커의 최초 노출 탭을 친구(.friend) 또는 채팅방(.chat)으로 지정할 수 있습니다.

viewType으로 화면 표시 형태를 풀 스크린(.full) 또는 팝업 뷰(.popup)로 지정할 수 있습니다.

탭별 피커의 종류(selectionMode)와 선택 가능 대상 수(minPickableCount, maxPickableCount)는 설정 객체인 SelectParams를 생성해 아래 경우별 파라미터에 지정해야 합니다.

  • 친구 탭: selectParams
  • 채팅방 탭
    • selectionType.chat(채팅방만 선택)인 경우: chatSelectParams
    • selectionType.chatMember(채팅방 선택 후 멤버 선택)인 경우: chatMemberSelectParams

selectionMode.single(싱글 피커)인 경우 최소, 최대 선택 수는 1로 고정됩니다. selectionMode.multiple(멀티 피커)인 경우 친구 피커와 채팅방 멤버 피커의 설정 범위는 최소 1, 최대 100(기본값: 최소 1, 최대 30), 채팅방 피커의 설정 범위는 최소 1, 최대 10(기본값: 최소 1, 최대 10)입니다. SelectParams 생성 방법을 함께 참고합니다.

이 외에 화면 방향, 검색 기능 등 세부적인 설정은 PickerTabRequestParams, 친구 목록 관련 설정은 friendsParams, 채팅방 목록 관련 설정은 chatParams로 지정할 수 있습니다. 자세한 파라미터 정보는 예제와 레퍼런스에서 확인합니다.

iOS 탭 피커는 SelectParams를 직접 생성하거나 헬퍼 메서드를 사용해 생성할 수 있습니다.

친구 탭 설정은 selectParams에 직접 생성한 값 또는 .friend() 메서드로 생성한 값을 전달합니다. 채팅방 탭 설정은 채팅방 피커의 경우 chatSelectParams에 직접 생성한 값 또는 chat() 메서드로 생성한 값을, 채팅방 멤버 피커의 경우 chatMemberSelectParams에 직접 생성한 값 또는 chatMember() 메서드로 생성한 값을 전달해야 합니다.

메서드 사용 시 미지정된 선택 파라미터에는 기본 값이 적용됩니다. 직접 생성은 아래 예제, 메서드 사용은 요청 예제를 참고합니다.

// 친구 탭의 SelectParams 직접 생성 예제
let friendSelectParams = SelectParams(selectionMode: .multiple, maxPickableCount: 7)
let friendParams = PickerTabRequestParams.FriendRequestParams(selectParams: friendSelectParams)

사용자가 선택한 친구 정보는 SelectedUsers 객체, 채팅방 정보는 SelectedChats 객체로 전달됩니다. 응답은 선택한 사용자 정보 목록 또는 채팅방 정보를 포함합니다.

let friendRequestParams = PickerTabRequestParams.FriendRequestParams(
friendFilter: PickerFriendFilter.none, // 친구 목록 필터링 설정
selectParams: .friend(
selectionMode: .multiple,
.single: 싱글 피커, .multiple: 멀티 피커
minPickableCount: 1, // 선택 가능한 최소 대상 수
maxPickableCount: 5 // 선택 가능한 최대 대상 수
)
)
let chatRequestParams = PickerTabRequestParams.ChatRequestParams(
selectionType: .chat,
채팅방 탭 동작 - .chat: 채팅방 피커, .chatMember: 채팅방 멤버 피커
chatFilters: [.regular] // 채팅방 목록 필터링 설정
)
let tabRequestParams = PickerTabRequestParams(
title: "탭 피커", // 피커 이름
friendParams: friendRequestParams, // 필수
chatParams: chatRequestParams // 필수
)
PickerApi.shared.select(
params: tabRequestParams,
viewType: .full,
.full: 전체 화면, .popup: 팝업 뷰
initialPickerTab: .friend
초기 탭 지정 - .friend: 친구 탭, .chat: 채팅방 탭
) { [weak self] selectedUsers, selectedChats, error in
if let error = error {
print(error)
} else {
print("select(params:) success.")
// 성공 시 동작 구현 (둘 중 하나 사용)
_ = selectedUsers
_ = selectedChats
}
}

현재 로그인한 사용자의 카카오계정에 연결된 카카오톡의 친구 정보를 가져옵니다. 공동체 앱은 유료 API이 필요한 기능입니다.

자세한 안내와 예제는 카카오톡 친구 목록 조회를 참고합니다.

사용 협의 필요

사용처 제한 API는 지정된 사용처에만 제공하는 카카오 API입니다. 지정된 사용처 이외의 서비스에서 사용처 제한 API를 사용하려면 [서비스] API플랫폼 아지트에서 별도 협의가 필요합니다.

레퍼런스앱 설정
[SDK, RxSDK] friendsForPartner()
[SDK] PartnerFriend
설치
모듈 설정
초기화
권한사전 설정카카오 로그인동의항목
인하우스 앱 전용네이티브 앱 키
카카오 로그인 활성화
동의항목
필요: 연결필요: 카카오 서비스 내 친구목록

사용자의 카카오톡 친구 목록을 가져옵니다. 이 API는 인하우스 앱 전용으로, 앱에 연결되지 않은 친구(초대 친구)의 정보도 제공합니다.

friendsForPartner() 메서드를 호출합니다. 정렬 기준, 페이지 설정, 필터링을 위한 파라미터를 제공합니다. 자세한 파라미터 정보는 레퍼런스에서 확인할 수 있습니다.

성공 시 각 친구 정보를 담은 PartnerFriend 객체 리스트(List)가 전달됩니다. 응답은 친구의 프로필, 관계, 고유 ID 등을 포함합니다. 자세한 응답 정보는 REST API를 참조합니다.

TalkApi.shared.friendsForPartner { (friends, error) in
if let error = error {
print(error)
}
else {
print("friendsForPartner() success.")
// 성공 시 동작 구현
_ = friends
}
}
레퍼런스앱 설정
[SDK, RxSDK] chatList()
[SDK] Chats
설치
모듈 설정
초기화
권한사전 설정카카오 로그인동의항목
인하우스 앱 전용네이티브 앱 키
카카오 로그인 활성화
동의항목
필요: 연결필요: 카카오톡 챗방 목록

사용자의 카카오톡 채팅방 목록을 가져옵니다.

chatList() 메서드를 호출합니다. 오픈 채팅, 일반 채팅 등 가져올 채팅방 타입을 지정하려면 filters 파라미터를 사용합니다. 자세한 파라미터 정보는 레퍼런스에서 확인할 수 있습니다.

성공 시 채팅방 목록은 Chats 객체로 전달됩니다. 응답의 채팅방 ID를 사용해 채팅방에 메시지를 보내거나, 인하우스 앱: 채팅방 멤버 조회 API로 각 채팅방의 멤버 정보를 요청할 수 있습니다. 자세한 응답 정보는 REST API를 참조합니다.

TalkApi.shared.chatList { (chatList, error) in
if let error = error {
print(error)
}
else {
print("chatList() success.")
// 성공 시 동작 구현
_ = chatList
}
}
레퍼런스앱 설정
[SDK, RxSDK] chatMembers()
[SDK] ChatMembers
설치
모듈 설정
초기화
권한사전 설정카카오 로그인동의항목
인하우스 앱 전용네이티브 앱 키
카카오 로그인 활성화
동의항목
필요: 연결필요: 카카오톡 챗방 목록

특정 카카오톡 채팅방의 멤버 목록을 가져옵니다.

chatMembers()를 호출합니다. 피커 또는 인하우스 앱: 채팅방 목록 조회 응답의 채팅방 ID를 사용합니다. 채팅방 멤버의 프로필 포함 여부, 카카오톡 친구 필터링 여부를 설정하는 파라미터를 제공합니다. 자세한 파라미터 정보는 레퍼런스에서 확인할 수 있습니다.

성공 시 채팅방 멤버 목록은 ChatMembers 객체로 전달됩니다. 사용자 자신의 정보는 채팅방 멤버 목록에 포함되지 않습니다. 응답의 각 멤버 정보는 회원번호와 고유 ID, 프로필, 앱 연결 여부를 포함합니다. 자세한 응답 정보는 REST API를 참조합니다.

TalkApi.shared.chatList { (chatList, error) in
if let error = error {
print(error)
}
else {
print("chatList() success.")
if let chats = chatList?.elements?.first {
TalkApi.shared.chatMembers(chatId: chats.id, friendsOnly: false) { (chatMembers, error) in
if let error = error {
print(error)
}
else {
print("chatMembers() success.")
// 성공 시 동작 구현
_ = chatMembers
}
}
}
else {
print("error: chats empty!")
}
}
}

응답의 token은 각 요청에 대한 토큰(Token)입니다. 재요청 시 token 파라미터로 토큰 값을 전달하면, 해당 토큰이 발급된 요청 이후로 변경된 채팅방 멤버 정보만이 응답에 포함됩니다.

도움이 되었나요?