사이드 메뉴
커뮤니케이션
API 제공
어드민 API
iOS
이 문서는 Partner iOS SDK(Kakao Partner SDK for iOS)를 사용한 카카오톡 모듈의 메시지 기능 사용 방법을 안내합니다. 메시지 API를 사용해 본 경험이 없다면 카카오톡 메시지에서 기능 소개나 이용 정책과 같은 기본 정보를 확인할 것을 권장합니다.
Partner iOS SDK는 누구나 사용 가능한 Open iOS SDK(Kakao SDK for iOS)에서 제공하지 않는 파트너 특화 기능을 추가 제공합니다.
- Open iOS SDK: 앱과 연결되어 있는 카카오톡 친구를 대상으로만 메시지 전송 가능
- Partner iOS SDK: 앱과 연결되지 않은 카카오톡 친구를 대상으로 초대 메시지 전송 가능, 채팅방 메시지 전송도 가능
- 앱과 연결되지 않은 친구는 카카오톡 친구 목록 조회의
friendFilter파라미터 값을invitable로 지정해 요청 receiverIdType파라미터를 사용해 메시지 수신 대상의 타입을 카카오톡 친구 또는 채팅방으로 지정 가능
- 앱과 연결되지 않은 친구는 카카오톡 친구 목록 조회의
| 메시지 유형 | Open iOS SDK | Partner iOS SDK |
|---|---|---|
| 초대 메시지 | 미지원 | 지원 |
| 채팅방 메시지 | 미지원 | 지원 |
Partner iOS SDK
ReactiveX 버전이 아닌 Partner iOS SDK 사용 시 해당하는 내용입니다.
카카오톡 친구에게 메시지를 보내려면 receiverIdType 파라미터의 값을 UserId 또는 Uuid로 지정하고, receiverIds 파라미터의 값에 카카오톡 친구의 ID 목록을 전달해야 합니다. 카카오톡 친구의 ID는 카카오톡 친구 목록 조회 API, 인하우스 앱: 카카오톡 친구 목록 조회 API로 확인할 수 있습니다.
채팅방에 메시지를 보내려면 receiverIdType 파라미터의 값을 ChatId로 지정하고, receiverIds 파라미터의 값에 채팅방 ID 목록을 전달해야 합니다. 카카오톡 친구의 ID는 채팅방 목록 조회로 확인할 수 있습니다.
Rx Partner iOS SDK
Rx Partner iOS SDK(ReactiveX Partner iOS SDK) 사용 시 해당하는 내용입니다.
Rx Partner iOS SDK 사용 시에는 수신자 ID 타입을 별도로 지정하지 않고, 카카오톡 친구와 채팅방에 대해 각각 다른 파라미터로 ID 목록을 전달합니다. 아래 파라미터 정보를 참고합니다.
| 이름 | 타입 | 설명 | 필수 |
|---|---|---|---|
| receiverUuids | [String] | 메시지 수신자 uuid 목록receiverUuids와 receiverChatIds 중 한 가지는 필수 전달해야 함 | O(Optional) |
| receiverChatIds | [Int64] | 채팅방 ID 목록receiverUuids와 receiverChatIds 중 한 가지는 필수 전달해야 함 | O(Optional) |
사용자 카카오계정에 연결된 카카오톡으로, 기본 템플릿을 적용한 메시지를 나에게 발송합니다.
Open iOS SDK의 sendDefaultMemo() 메서드를 호출합니다.
자세한 안내와 예제는 나에게 기본 템플릿으로 메시지 발송을 참고합니다.
사용자 카카오계정에 연결된 카카오톡으로, 사용자 정의 템플릿을 적용한 메시지를 나에게 발송합니다.
Open iOS SDK의 sendCustomMemo() 메서드를 호출합니다.
자세한 안내와 예제는 사용자 정의 템플릿으로 메시지 발송을 참고합니다.
사용자 카카오계정에 연결된 카카오톡으로, 웹 페이지 스크랩 정보가 담긴 기본 템플릿을 적용한 메시지를 나에게 발송합니다.
Open iOS SDK의 sendScrapMemo() 메서드를 호출합니다.
자세한 안내와 예제는 나에게 스크랩 메시지 발송을 참고합니다.
| 레퍼런스 | 앱 설정 |
|---|---|
[SDK, RxSDK] sendDefaultMessageForPartner()[SDK] PartnerMessageSendResult | 설치 모듈 설정 초기화 커스텀 URL 스킴 설정 |
사용자 카카오계정에 연결된 카카오톡으로, 기본 템플릿을 적용한 메시지를 사용자의 친구에게 발송합니다.
- 메시지 템플릿 구성: 원하는 템플릿 종류에 따라 객체를 구성합니다. 템플릿 구성 방법은 기본 템플릿을 참고합니다.
- 메시지 수신자 조회: 카카오톡 친구 목록 조회 API 또는 인하우스 앱: 카카오톡 친구 목록 조회 API로 사용자의 카카오톡 친구 ID를 가져옵니다.
- 수신자와 템플릿 지정:
sendDefaultMessageForPartner()호출 시,receiverIdType파라미터의 값을UserId또는Uuid로 지정하고,receiverIds파라미터의 값에 카카오톡 친구의 ID 목록을 전달합니다. 이와 함께 앞서 구성한 템플릿 객체를templatable파라미터로 전달합니다.
Rx Partner iOS SDK
Rx Partner iOS SDK(ReactiveX Partner iOS SDK) 사용 시, 수신자 ID 타입을 별도로 지정하지 않고, 카카오톡 친구와 채팅방에 대해 각각 다른 파라미터로 ID 목록을 전달합니다. 수신자 타입 지정하기를 참고합니다.
// 실제 카카오톡 친구의 UUID는 friendsForPartner()로 획득 가능// 서비스 UI에 맞춰 친구 목록 출력 후, 사용자가 선택한 친구의 UUID를 메시지 발송에 사용할 것let friendUuids = ["freindsUuid1","freindsUuid2","freindsUuid3"]let title = "카카오톡 링크 4.0(메시지)"let description = "친구에게 발송 디폴트 템플릿 FEED"let feedTemplateJsonStringData ="""{"object_type": "feed","content": {"title": "\(title)","description": "\(description)","image_url": "http://alpha-api1-kage.kakao.com/dn/cerDB5/ZSb2iRugKx/M4nuZxX823tnK1Mk5yVcv0/kakaolink40_original.png","link": {"web_url": "http://dev.kakao.com","mobile_web_url": "http://dev.kakao.com"}},"social": {"like_count": 100,"comment_count": 200},"button_title": "바로 확인"}""".data(using: .utf8)!if let templatable = try? SdkJSONDecoder.custom.decode(FeedTemplate.self, from: feedTemplateJsonStringData) {TalkApi.shared.sendDefaultMessageForPartner(templatable: templatable,receiverIdType: .Uuid,receiverIds: friendUuids) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}}
| 레퍼런스 | 앱 설정 |
|---|---|
[SDK, RxSDK] sendCustomMessageForPartner()[SDK] PartnerMessageSendResult | 설치 모듈 설정 초기화 커스텀 URL 스킴 설정 |
사용자 카카오계정에 연결된 카카오톡으로, 사용자 정의 템플릿을 적용한 메시지를 사용자의 친구에게 발송합니다.
- 메시지 템플릿 구성: [도구] > [메시지 템플릿]에서 메시지 템플릿을 구성합니다. 템플릿 구성 방법은 사용자 정의 템플릿을 참고합니다.
- 메시지 수신자 조회: 카카오톡 친구 목록 조회 API 또는 인하우스 앱: 카카오톡 친구 목록 조회 API로 사용자의 카카오톡 친구 ID를 가져옵니다.
- 수신자와 템플릿 지정:
sendCustomMessageForPartner()호출 시,receiverIdType파라미터의 값을UserId또는Uuid로 지정하고,receiverIds파라미터의 값에 카카오톡 친구의 ID 목록을 전달합니다. 이와 함께 앞서 구성한 메시지 템플릿의 ID를templateId파라미터로 전달합니다. - 사용자 인자 전달(선택): 메시지에 변동되는 정보를 포함하려면 해당 사용자 정의 템플릿에 사용자 인자를 추가한 후,
templateArgs파라미터로 키와 값을 전달합니다. 자세한 사용 방법과 주의 사항은 직접 사용자 인자 입력하기에서 확인할 수 있습니다.
// 실제 카카오톡 친구의 UUID는 friendsForPartner()로 획득 가능// 서비스 UI에 맞춰 친구 목록 출력 후, 사용자가 선택한 친구의 UUID를 메시지 발송에 사용할 것let friendUuids = ["freindsUuid1","freindsUuid2","freindsUuid3"]let templateId:Int64 = 12345TalkApi.shared.sendCustomMessageForPartner(templateId:templateId,receiverIdType: .Uuid,receiverIds: friendUuids) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}
| 레퍼런스 | 앱 설정 |
|---|---|
[SDK, RxSDK] sendScrapMessageForPartner()[SDK] PartnerMessageSendResult | 설치 모듈 설정 초기화 커스텀 URL 스킴 설정 |
사용자 카카오계정에 연결된 카카오톡으로, 웹 페이지 스크랩 정보가 담긴 기본 템플릿을 적용한 메시지를 친구에게 발송합니다.
- 메시지 수신자 조회: 카카오톡 친구 목록 조회 API 또는 인하우스 앱: 카카오톡 친구 목록 조회 API로 사용자의 카카오톡 친구 ID를 가져옵니다.
- 스크랩할 웹 페이지 URL 지정:
sendScrapMessageForPartner호출 시, 스크랩할 웹 페이지의 URL을url파라미터로 전달해야 합니다. 스크랩할 웹 페이지의 도메인은 앱 관리 페이지의 [앱] > [제품 링크 관리] > [웹 도메인]에 등록돼 있어야 합니다. - 사용자 정의 템플릿 적용 (선택): 서비스에서 정의한 메시지 템플릿을 기반으로 메시지를 보내고 싶으면 [도구] > [메시지 템플릿]에서 구성한 템플릿의 ID를
templateId파라미터로 전달해야 합니다. 템플릿 구성 방법은 사용자 정의 템플릿을 참고합니다. - 사용자 인자 전달(선택): 메시지에 변동되는 정보를 포함하려면 해당 사용자 정의 템플릿에 사용자 인자를 추가한 후,
templateArgs파라미터로 키와 값을 전달합니다. 자세한 사용 방법과 주의 사항은 직접 사용자 인자 입력하기에서 확인할 수 있습니다.
// 실제 카카오톡 친구의 UUID는 friendsForPartner()로 획득 가능// 서비스 UI에 맞춰 친구 목록 출력 후, 사용자가 선택한 친구의 UUID를 메시지 발송에 사용할 것let friendUuids = ["freindsUuid1","freindsUuid2","freindsUuid3"]let url = "https://developers.kakao.com"TalkApi.shared.sendScrapMessageForPartner(requestUrl:url,receiverIdType: .Uuid,receiverIds: friendUuids) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}
// 실제 카카오톡 친구의 UUID는 friendsForPartner()로 획득 가능// 서비스 UI에 맞춰 친구 목록 출력 후, 사용자가 선택한 친구의 UUID를 메시지 발송에 사용할 것let friendUuids = ["freindsUuid1","freindsUuid2","freindsUuid3"]let url = "https://developers.kakao.com"let templateId:Int64 = 12345TalkApi.shared.sendScrapMessageForPartner(requestUrl:url,templateId:templateId,receiverIdType: .Uuid,receiverIds: friendUuids) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}
| 레퍼런스 | 앱 설정 |
|---|---|
[SDK, RxSDK] sendDefaultMessageForPartner()[SDK] PartnerMessageSendResult | 설치 모듈 설정 초기화 커스텀 URL 스킴 설정 |
사용자 카카오계정에 연결된 카카오톡으로, 기본 템플릿을 적용한 메시지를 채팅방에 발송합니다.
- 메시지 템플릿 구성: 원하는 템플릿 종류에 따라 객체를 구성합니다. 템플릿 구성 방법은 기본 템플릿을 참고합니다.
- 메시지 수신 대상 조회: 채팅방 목록 조회 API로 사용자의 카카오톡 채팅방 ID를 가져옵니다.
- 수신자와 템플릿 지정:
sendDefaultMessageForPartner()호출 시,receiverIdType파라미터의 값을ChatId으로 지정하고,receiverIds파라미터의 값에 채팅방 ID 목록을 전달합니다. 이와 함께 앞서 구성한 템플릿 객체를templatable파라미터로 전달합니다.
Rx Partner iOS SDK
Rx Partner iOS SDK(ReactiveX Partner iOS SDK) 사용 시, 수신자 ID 타입을 별도로 지정하지 않고, 카카오톡 친구와 채팅방에 대해 각각 다른 파라미터로 ID 목록을 전달합니다. 수신자 타입 지정하기를 참고합니다.
// 실제 채팅방 ID는 chatList()로 획득 가능// 서비스 UI에 맞춰 목록 출력 후, 사용자가 선택한 채팅방 ID를 메시지 발송에 사용할 것let chatIds = [123,234,345] as [Int64]let title = "카카오톡 링크 4.0(메시지)"let description = "친구에게 발송 디폴트 템플릿 FEED"let feedTemplateJsonStringData ="""{"object_type": "feed","content": {"title": "\(title)","description": "\(description)","image_url": "http://alpha-api1-kage.kakao.com/dn/cerDB5/ZSb2iRugKx/M4nuZxX823tnK1Mk5yVcv0/kakaolink40_original.png","link": {"web_url": "http://dev.kakao.com","mobile_web_url": "http://dev.kakao.com"}},"social": {"like_count": 100,"comment_count": 200},"button_title": "바로 확인"}""".data(using: .utf8)!if let templatable = try? SdkJSONDecoder.custom.decode(FeedTemplate.self, from: feedTemplateJsonStringData) {TalkApi.shared.sendDefaultMessageForPartner(templatable: templatable,receiverIdType: .ChatId,receiverIds: chatIds) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}}
| 레퍼런스 | 앱 설정 |
|---|---|
[SDK, RxSDK] sendCustomMessageForPartner()[SDK] PartnerMessageSendResult | 설치 모듈 설정 초기화 커스텀 URL 스킴 설정 |
사용자 카카오계정에 연결된 카카오톡으로, 사용자 정의 템플릿을 적용한 메시지를 채팅방에 발송합니다.
- 메시지 템플릿 구성: [도구] > [메시지 템플릿]에서 메시지 템플릿을 구성합니다. 템플릿 구성 방법은 사용자 정의 템플릿을 참고합니다.
- 메시지 수신 대상 조회: 채팅방 목록 조회 API로 사용자의 카카오톡 채팅방 ID를 가져옵니다.
- 수신자와 템플릿 지정:
sendCustomMessageForPartner()호출 시,receiverIdType파라미터의 값을ChatId으로 지정하고,receiverIds파라미터의 값에 채팅방 ID 목록을 전달합니다. 이와 함께 앞서 구성한 메시지 템플릿의 ID를templateId파라미터로 전달합니다. - 사용자 인자 전달(선택): 메시지에 변동되는 정보를 포함하려면 해당 사용자 정의 템플릿에 사용자 인자를 추가한 후,
templateArgs파라미터로 키와 값을 전달합니다. 자세한 사용 방법과 주의 사항은 직접 사용자 인자 입력하기에서 확인할 수 있습니다.
Rx Partner iOS SDK
Rx Partner iOS SDK(ReactiveX Partner iOS SDK) 사용 시, 수신자 ID 타입을 별도로 지정하지 않고, 카카오톡 친구와 채팅방에 대해 각각 다른 파라미터로 ID 목록을 전달합니다. 수신자 타입 지정하기를 참고합니다.
// 실제 채팅방 ID는 chatList()로 획득 가능// 서비스 UI에 맞춰 목록 출력 후, 사용자가 선택한 채팅방 ID를 메시지 발송에 사용할 것let chatIds = [123,234,345] as [Int64]let templateId:Int64 = 12345TalkApi.shared.sendCustomMessageForPartner(templateId:templateId,receiverIdType: .ChatId,receiverIds: chatIds) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}
| 레퍼런스 | 앱 설정 |
|---|---|
[SDK, RxSDK] sendScrapMessageForPartner()[SDK] PartnerMessageSendResult | 설치 모듈 설정 초기화 커스텀 URL 스킴 설정 |
사용자 카카오계정에 연결된 카카오톡으로, 웹 페이지 스크랩 정보가 담긴 메시지를 채팅방에 발송합니다.
- 메시지 수신 대상 조회: 채팅방 목록 조회 API로 사용자의 카카오톡 채팅방 ID를 가져옵니다.
- 수신자와 템플릿 지정:
sendScrapMessageForPartner()호출 시,receiverIdType파라미터의 값을ChatId으로 지정하고,receiverIds파라미터의 값에 채팅방 ID 목록을 전달합니다. 이와 함께 스크랩할 웹 페이지의 URL을requestUrl파라미터로 전달합니다. 스크랩할 웹 페이지의 도메인은 앱 관리 페이지의 [앱] > [제품 링크 관리] > [웹 도메인]에 등록돼 있어야 합니다. - 사용자 정의 템플릿 적용 (선택): 서비스에서 정의한 메시지 템플릿을 기반으로 메시지를 보내고 싶으면 [도구] > [메시지 템플릿]에서 구성한 템플릿의 ID를
templateId파라미터로 전달해야 합니다. 템플릿 구성 방법은 사용자 정의 템플릿을 참고합니다. - 사용자 인자 전달(선택): 메시지에 변동되는 정보를 포함하려면 해당 사용자 정의 템플릿에 사용자 인자를 추가한 후,
templateArgs파라미터로 키와 값을 전달합니다. 자세한 사용 방법과 주의 사항은 직접 사용자 인자 입력하기에서 확인할 수 있습니다.
// 실제 채팅방 ID는 chatList()로 획득 가능// 서비스 UI에 맞춰 목록 출력 후, 사용자가 선택한 채팅방 ID를 메시지 발송에 사용할 것let chatIds = [123,234,345] as [Int64]let url = "https://developers.kakao.com"TalkApi.shared.sendScrapMessageForPartner(requestUrl: url,receiverIdType: .ChatId,receiverIds: chatIds) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}
// 실제 채팅방 ID는 chatList()로 획득 가능// 서비스 UI에 맞춰 목록 출력 후, 사용자가 선택한 채팅방 ID를 메시지 발송에 사용할 것let chatIds = [123,234,345] as [Int64]let url = "https://developers.kakao.com"let templateId:Int64 = 12345TalkApi.shared.sendScrapMessageForPartner(requestUrl: url,templateId:templateId,receiverIdType: .ChatId,receiverIds: chatIds) { (messageSendResult, error) inif let error = error {print(error)}else {print("success.")let _ = messageSendResult}}
KAGE 분산 스토리지로 메시지 발송 API에 사용할 이미지를 업로드합니다.
자세한 안내와 예제는 이미지 업로드를 참고합니다.
카카오 내부 또는 외부에 존재하는 웹 URL의 이미지 정보를 KAGE에 스크랩합니다.
자세한 안내와 예제는 이미지 업로드를 참고합니다.