버전 비교

  • 이 줄이 추가되었습니다.
  • 이 줄이 삭제되었습니다.
  • 서식이 변경되었습니다.
목차

...

...

style

...

none

...

초기화 및 상태변화 이벤트 처리

...

앱 이벤트 메서드 초기화 (iOS Only)

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_ios_appDelegate
nopaneltrue

코드 블럭
languageswift
import KakaoGameTubeKakaoGame

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

	var window: UIWindow?
	
	override init() {
		KGTApplication.setSwizzleAppDelegate(delegate: AppDelegate.description())
	}

}

SDK 초기화

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_init_sdk
nopaneltrue

코드 블럭
languageswift
import KakaoGameTubeKakaoGame

/**
 * 단일 앱으로 사용하는 경우
 */
let config = KGTConfig(appId: "909428",
					   appSecret: "c3c38bbfa3828b342d946e9770c974d0",
					   appVersion: "1.0.0",
					   market: "appStore",
					   ageRating: "14",
					   serverType: .QA,
					   logLevel: .Verbose)

/**
 * 앱 그룹을 사용하는 경우
 */
let apps: [String : String] = [ "909428" : "c3c38bbfa3828b342d946e9770c974d0",
								"921478" : "5891c32124ca35821890a0bc1cec77a5"]
let config = KGTConfig(appGroupId: "tubeAppGroup",
					   apps: apps,
					   appVersion: "1.0.0",
					   market: "appStore",
					   ageRating: "14",
					   serverType: .QA,
					   logLevel: .Verbose)

KGTApplication.initSDK(config)

스타트 (Start) 하기

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_start
nopaneltrue

코드 블럭
languageswift
import KakaoGameTubeKakaoGame

KGTApplication.start { error in
	if error.isSuccess {
		// 스타트가 성공 한 경우
				
		// 자동로그인 여부
		let isLoggedIn = KGTPlayer.isLoggedIn
				
		if isLoggedIn {
			// 플랫폼에서 발급한 현재 Player의 ID
			let playerId = KGTPlayer.currentPlayer?.playerId
					
			// 플랫폼 액세스 토큰
			let accessToken = KGTPlayer.accessToken
					
			// 현재 IDP 인증 정보를 가져옴
			let idpProfile = KGTPlayer.currentPlayer?.idpProfile
					
			// [TODO] 게임 화면으로 이동 합니다.
		} else {
			// [TODO] 자동로그인이 안 된 경우 로그인 화면으로 이동 합니다.
		}
				
	} else {
		// 스타트가 실패 한 경우 - 초기화가 실패한 경우 이므로 스타트를 재시도 하거나 앱을 종료 하여야 합니다.
				
		if error.code == KGTErrorCode.networkFailure ||
			error.code == KGTErrorCode.serverTimeout ||
			error.code == KGTErrorCode.serverConnectionFalied {
			// [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도
		} else {
			// [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 스타트 재시도 요청 하여야 합니다. - 문제가 반복해서 발생하는 경우 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
		}
	}
}

...

Pause 하기

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_start_with_appidpause
nopaneltrue

코드 블럭
languageswift
import KakaoGameTubeKakaoGame
 // 사용자가 선택한 appId 또는 기존에 사용자가 선택한 appId를 저장 후 얻어오는 부분은 게임이 구현
let selectedAppId = ""


KGTApplication.start(appId: selectedAppId) 
KGTApplication.pause()

Resume 하기

발췌문 삽입
초기화 및 상태변화 이벤트 처리 SDK 예제
초기화 및 상태변화 이벤트 처리 SDK 예제
nameapplication_resume
nopaneltrue

코드 블럭
languageswift
import KakaoGame
 
KGTApplication.resume { error in

	if error.isSuccess {
		// 스타트가[TODO] resume이 성공 한 경우 게임 		// 자동로그인 여부화면을 재개합니다.
		let} isLoggedInelse ={
KGTPlayer.isLoggedIn

		if isLoggedIn {
            // 플랫폼에서 발급한 현재 Player의 ID
			let playerId = KGTPlayer.currentPlayer?.playerId
					// [TODO] resume이 실패 한 경우 인증 실패 면 로그인 화면으로, 그외의 경우는 에러 팝업을 띄우고 재시도 여부를 확인합니다.
		if error.code == KGTErrorCode.authFailure ||
			error.code == KGTErrorCode.idpAuthFailure {
			// 플랫폼[TODO] 액세스인증 토큰
			let accessToken = KGTPlayer.accessToken
					
			// 현재 IDP 인증 정보를 가져옴
			let idpProfile = KGTPlayer.currentPlayer?.idpProfile

실패의 경우 시작 화면으로 이동해서 다시 신규 로그인 flow를 수행합니다.
		} else {
			// [TODO] 게임나머지 화면으로 이동 합니다.
		} else {
			// [TODO] 자동로그인이 안 된 경우 로그인 화면으로 이동에러가 발생한 경우 경우 에러 안내 후 resume 을 재시도 합니다. - 반복해서 문제가 발생하는 경우 앱을 종료하도록 합니다.
		}
	}
else {
        // 스타트가 실패 한 경우 - 초기화가 실패한 경우 이므로 스타트를 재시도 하거나 앱을 종료 하여야 합니다.
				
		if error.code == KGTErrorCode.networkFailure ||
			error.code == KGTErrorCode.serverTimeout ||
			error.code == KGTErrorCode.serverConnectionFalied {
			// [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도
		} else {
			// [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 스타트 재시도 요청 하여야 합니다. - 문제가 반복해서 발생하는 경우 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
		}
	}
})

Pause 하기

...

코드 블럭
languageswift
import KakaoGameTube
 
KGTApplication.pause()

Resume 하기

...

코드 블럭
languageswift
import KakaoGameTube
 
KGTApplication.resume { error in
	if error.isSuccess {
		// [TODO] resume이 성공 한 경우 게임 화면을 재개합니다.
	} else {
		// [TODO] resume이 실패 한 경우 인증 실패 면 로그인 화면으로, 그외의 경우는 에러 팝업을 띄우고 재시도 여부를 확인합니다.
		if error.code == KGTErrorCode.authFailure ||
			error.code == KGTErrorCode.idpAuthFailure {
			// [TODO] 인증 실패의 경우 시작 화면으로 이동해서 다시 신규 로그인 flow를 수행합니다.
		} else {
			// [TODO] 나머지 에러가 발생한 경우 경우 에러 안내 후 resume 을 재시도 합니다. - 반복해서 문제가 발생하는 경우 앱을 종료하도록 합니다.
		}
	}
})

로그인

...

기본 로그인 UI를 사용하는 로그인하기

코드 블럭
languageswift
import KakaoGameTube

KGTPlayer.login { error in
	if error.isSuccess {
		// IDP 로그인과 플랫폼 로그인 성공})

로그인

...

발췌문 삽입
로그인 SDK 예제
로그인 SDK 예제
namelogin
nopaneltrue

기본 로그인 UI를 사용하지 않는 로그인하기

발췌문 삽입
로그인 SDK 예제
로그인 SDK 예제
namelogin_custom
nopaneltrue

코드 블럭
languageswift
import KakaoGame

// 로그인 하고자 하는 IdpCode 셋팅
let idpCode = KGTIdpCode.Kakao

// 특정 idp로 로그인 하기
KGTPlayer.login(with: idpCode) { error in
	if error.isSuccess {
		// IDP 로그인과 플랫폼 로그인 성공

        // 플랫폼에서 발급한 현재 Player의 ID
		let playerId = KGTPlayer.currentPlayer?.playerId
					
		// 플랫폼 액세스 토큰
		let accessToken = KGTPlayer.accessToken
					
		// 현재 IDP 인증 정보를 가져옴
		let idpProfile = KGTPlayer.currentPlayer?.idpProfile

		// [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다.
	} else {
		// IDP 로그인 혹은 플랫폼 로그인 실패
		// [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다.

        if // 플랫폼에서 발급한 현재 Player의 ID
		let playerId = KGTPlayer.currentPlayer?.playerIderror.code == KGTErrorCode.networkFailure ||
					
		// 플랫폼 액세스 토큰
		let accessToken = KGTPlayer.accessToken
					
error.code == KGTErrorCode.serverTimeout ||
			error.code == KGTErrorCode.serverConnectionFalied {
			// 현재 IDP 인증 정보를 가져옴
		let idpProfile = KGTPlayer.currentPlayer?.idpProfile

		// [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다.
	} else {
		// IDP 로그인 혹은 플랫폼 로그인 실패
		// [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다.

        if error.code == KGTErrorCode.networkFailure ||
			error.code == KGTErrorCode.serverTimeout ||
			error.code == KGTErrorCode.serverConnectionFalied [TODO] 네트워크 에러가 발생한 경우에는 로그인 재시도 요청 하여야 합니다.
		} else if error.code == KGTErrorCode.blockedByPolicy {
			// [TODO] 차단당한 국가 코드 또는 IP 대역에서 로그인을 시도하였습니다. 이에 대한 처리가 필요합니다.
        } else if error.code == KGTErrorCode.userCanceled {    
			// [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
		} else {
			// [TODO] 네트워크나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. 		}- else에러코드 if error.code == KGTErrorCode.forbidden {
			// [TODO] CBT기간동안 허용된 유저외에는 인증이 불가능 할 수 있습니다. 유저에게 안내메시지 처리가 필요합니다.
        } else if error.code == KGTErrorCode.userCanceled {    
			// [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
		} else {
			로그 확인 후 원인 파악이 필요합니다.
		}
	}
})

로그아웃

...

발췌문 삽입
로그아웃 SDK 예제
로그아웃 SDK 예제
namelogout
nopaneltrue

기본 로그아웃 UI를 사용하지 않는 로그아웃하기

발췌문 삽입
로그아웃 SDK 예제
로그아웃 SDK 예제
namelogout_custom
nopaneltrue

코드 블럭
languageswift
import KakaoGame

// 로그아웃 요청
KGTPlayer.logout(showUI: false) { error in
	if error.isSuccess {
		// 로그아웃 성공

		// [TODO] 나머지시작 에러가화면으로 발생한돌아가기
경우에는	} 에러else 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
		}
	}
})

...

{
		// 로그아웃 실패
	}
})

탈퇴

...

발췌문 삽입
탈퇴 SDK 예제
탈퇴 SDK 예제
nameunregister
nopaneltrue

기본 탈퇴 UI를 사용하지 않는 탈퇴하기

발췌문 삽입
로그인 탈퇴 SDK 예제로그인
탈퇴 SDK 예제
nameloginunregister_custom
nopaneltrue

코드 블럭
languageswiftjava
import KakaoGameTubeKakaoGame

// 로그인 하고자 하는 IdpCode 셋팅
let idpCode = KGTIdpCode.Kakao

// 특정 idp로 로그인 하기
KGTPlayer.login(with: idpCode) { error in
	if error.isSuccess탈퇴 요청
KGTPlayer.unregister(showUI: false) { error in 
	if error.isSuccess {
		// 탈퇴 성공

		// [TODO] 시작 화면으로 돌아가기
	} else {
		// 탈퇴 IDP실패 로그인과
플랫폼 로그인 성공

        // 플랫폼에서 발급한 현재 Player의 ID
		let playerId = KGTPlayer.currentPlayer?.playerId
					
		// 플랫폼 액세스 토큰
		let accessToken = KGTPlayer.accessToken
					
		// 현재 IDP 인증 정보를 가져옴
		let idpProfile = KGTPlayer.currentPlayer?.idpProfile

		// [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다	}
})

계정 연결

...

발췌문 삽입
계정 연결 SDK 예제
계정 연결 SDK 예제
nameconnect
nopaneltrue

기본 계정 연결 UI를 사용하지 않는 계정 연결하기

발췌문 삽입
계정 연결 SDK 예제
계정 연결 SDK 예제
nameconnect_custom
nopaneltrue

코드 블럭
languagejava
import KakaoGame

// 로그인 하고자 하는 IdpCode 셋팅
let idpCode = KGTIdpCode.Kakao

// 특정 idp로 계정 연결 하기
KGTPlayer.connect(idpCode: idpCode) { error in 
	if error.isSuccess {
		// IDP 연결 성공
		// Player ID 는 변경되지 않습니다.
	} else {
		// IDP 로그인연결 혹은실패
플랫폼
로그인 실패
		// [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다.

       		if error.code == KGTErrorCode.invalidParameter {
			// 잘못된 인자가 전달 된 경우
		} else if error.code == KGTErrorCode.networkFailurenotAuthorized ||{
			error.code == KGTErrorCode.serverTimeout ||
			// 현재 로그인이 안되어 있는 경우
		} else if error.code == KGTErrorCode.serverConnectionFaliedinvalidState {
			// 현재 [TODO]인증 네트워크 에러가IDP 발생한 경우에는계정 로그인연결 재시도가능한 요청idp가 하여야아닌 합니다.경우
		} else if error.code == KGTErrorCode.blockedByPolicyalreadyUsedIdpAccount {
			// [TODO] 차단당한 국가 코드 또는 IP 대역에서 로그인을 시도하였습니다. 이에 대한 처리가 필요합니다.
        } else if error.code == KGTErrorCode.userCanceled {    
			// [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
		} else {
			// [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
		}
	}
})

로그아웃

...

기본 로그아웃 UI를 사용하는 로그아웃하기

...

 이미 연결되어 있는 계정이 있는 경우
		} else {
			// 기타 에러 발생
		}
	}
})

프로필

...

내 정보 조회하기

발췌문 삽입
프로필 SDK 예제
프로필 SDK 예제
nameplayer_currentPlayer
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let localPlayer = KGTPlayer.currentPlayer

내 IDP 정보 조회하기

발췌문 삽입
프로필 SDK 예제
프로필 SDK 예제
nameplayer_idpProfile
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let idpProfile = KGTPlayer.currentPlayer?.idpProfile

시스템 정보

...

언어 코드 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_language_code
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let languageCode = KGTSystem.languageCode

국가 코드 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_country_code
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let countryCode = KGTSystem.countryCode

IP 기반 국가 코드 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_geo_country_code
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let countryCode = KGTSystem.geoCountryCode

기기 아이디 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_device_id
nopaneltrue

코드 블럭
languagejavaswift
import KakaoGameTubeKakaoGame

//let 로그아웃deviceId 요청= KGTPlayer.logout(showUI: true) { error in
	if error.isSuccess {
		// 로그아웃 성공

		// [TODO] 시작 화면으로 돌아가기
	} else {
		// 로그아웃 실패
	}
})

...

KGTSystem.deviceId

기기 모델 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_device_model
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let deviceModel = KGTSystem.deviceModel

OS 이름 가져오기

발췌문 삽입
로그아웃 시스템 정보 SDK 예제로그아웃
시스템 정보 SDK 예제
namelogoutsystem_os_customname
nopaneltrue

코드 블럭
languageswift
import KakaoGameTubeKakaoGame

//let 로그아웃osName 요청= KGTPlayer.logout(showUI: false) { error in
	if error.isSuccess {
		// 로그아웃 성공

		// [TODO] 시작 화면으로 돌아가기
	} else {
		// 로그아웃 실패
	}
})

탈퇴

계정 연결

...

기본 계정 연결 UI를 사용하는 계정 연결하기

...

KGTSystem.osName

네트워크 연결 여부 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_is_network_connected
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let isNetworkConnected = KGTSystem.isNetworkConnected

연결된 네트워크 타입 가져오기

발췌문 삽입
시스템 정보 SDK 예제
시스템 정보 SDK 예제
namesystem_network_type
nopaneltrue

코드 블럭
languageswift
import KakaoGame

let networkType = KGTSystem.networkType

카카오 연동 기능

...

카카오톡 게임 메시지 수신 여부 설정하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_show_setting
nopaneltrue

코드 블럭
languageswift
import KakaoGameTube

KGTPlayer.connect { error in 
	if error.isSuccess {
		// IDP 연결 성공
		// Player ID 는 변경되지 않습니다.
	} else {
		// IDP 연결 실패

		if error.code == KGTErrorCode.invalidParameter {
	 KakaoGame
import KakaoGameKakao

// 카카오톡 게임 메시지 수신 여부 설정 뷰 띄우기
KGTKakaoTalk.showSetting { error, isAllowedMe in
	if error.isSuccess {
		// 잘못된카카오톡 인자가게임 전달메시지 수신 경우여부 		}설정 else성공
if error.code		let isAllowedMe == KGTErrorCode.notAuthorized {
			isAllowedMe // 현재설정된 로그인이메시지 안되어수신 있는허용 경우여부
		} else if error.code == KGTErrorCode.invalidStatenotKakaoTalkUser {
			// 현재 인증  IDP  계정 연결 가능한// idp가로그인 아닌 경우
		} else if error.code == KGTErrorCode.alreadyUsedIdpAccount {
			// 이미 연결되어 있는 계정이 있는 경우
		유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
			// 기타 에러 발생
		} 카카오톡 게임 메시지 수신 여부 설정 실패
	}
})

...

카카오톡 프로필 조회하기

발췌문 삽입
계정 연결 카카오 연동 기능 SDK 예제계정 연결
카카오 연동 기능 SDK 예제
nameconnect_customkakao_talk_talk_profile
nopaneltrue

import KakaoGameTube // 로그인 하고자 하는 IdpCode 셋팅 let idpCode = KGTIdpCode.Kakao
코드 블럭
languagejava
languageswift
import KakaoGame
import KakaoGameKakao

// 특정카카오톡 idp로프로필 계정 연결 하기
KGTPlayer.connect(idpCode: idpCode) 조회하기
KGTKakaoTalk.talkProfile { error, in 
	if error.isSuccess {
		// IDP 연결 성공
		// Player ID 는 변경되지 않습니다.
	} elseprofile in
	if error.isSuccess {
		// IDP카카오톡 프로필 연결조회 실패성공
		
		iflet error.codetalkProfile == KGTErrorCode.invalidParameter {
			profile // 잘못된 인자가 전달 된 경우
		로그인한 유저의 카카오톡 프로필 정보
    } else if error.code == KGTErrorCode.notAuthorizednotKakaoTalkUser {
			// 현재 로그인이 안되어 있는 경우
	 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else if error.code == KGTErrorCode.invalidState {
			// 현재카카오톡 인증프로필 조회 IDP실패
가 계정 연결 가능한 idp가 아닌 경우
		} else if error.code == KGTErrorCode.alreadyUsedIdpAccount {
			// 이미 연결되어 있는 계정이 있는 경우
		} else {
			// 기타 에러 발생
		}
	}
})

프로필

내 정보 조회하기

...

코드 블럭
languageswift
import KakaoGameTube

let localPlayer = KGTPlayer.currentPlayer

내 IDP 정보 조회하기

...

코드 블럭
languageswift
import KakaoGameTube

let idpProfile = KGTPlayer.currentPlayer?.idpProfile

시스템 정보

언어 코드 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let languageCode = KGTSystem.languageCode

국가 코드 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let countryCode = KGTSystem.countryCode

IP 기반 국가 코드 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let countryCode = KGTSystem.geoCountryCode

기기 아이디 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let deviceId = KGTSystem.deviceId

기기 모델 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let deviceModel = KGTSystem.deviceModel

OS 이름 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let osName = KGTSystem.osName

네트워크 연결 여부 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let isNetworkConnected = KGTSystem.isNetworkConnected

연결된 네트워크 타입 가져오기

...

코드 블럭
languageswift
import KakaoGameTube

let networkType = KGTSystem.networkType

카카오 연동 기능

카카오톡 게임 메시지 수신 여부 설정하기

...

코드 블럭
languageswift
import KakaoGameTube
import KakaoGameTubeKakao

// 카카오톡 게임 메시지 수신 여부 설정 뷰 띄우기
KGTKakaoTalk.showSetting { error, isAllowedMe in
	if error.isSuccess {
		// 카카오톡 게임 메시지 수신 여부 설정 성공
		let isAllowedMe = isAllowedMe // 설정된 메시지 수신 허용 여부
		}
})

카카오톡 게임 친구 목록 조회하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_friends
nopaneltrue

코드 블럭
languageswift
import KakaoGame
import KakaoGameKakao

// 게임 친구 목록 조회하기
KGTKakaoTalk.friends { error, players in
	if error.isSuccess {
		// 카카오톡 게임 친구 목록 조회 성공.
		for player in players {
			if let kakaoFriendProfile = player.idpProfile as? KGTKakaoFriendProfile {
			
			}
		}
    } else if error.code == KGTErrorCode.notKakaoTalkUser {
		// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
		// 카카오톡 게임 친구 목록 조회 실패
	}
})

카카오톡 게임 메시지 보내기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_send_game_message
nopaneltrue

코드 블럭
languageswift
import KakaoGame
import KakaoGameKakao

// friends API를 통해 가져온 친구 객체
let kakaoProfile: KGTKakaoFriendProfile = // 카카오 프로필 (KGTKakaoFriendProfile 객체)

// [TODO] 템플릿 Id 설정
let templateId = ""

// [TODO] 메시지 템플릿에 설정한 인자 설정
var argumentDic: [String : Any]? = [:]
argumentDic["rog_link"] = "test=100&hello20111"
argumentDic["bruce2"] = "test=100&hello=20111"

// 카카오톡 게임 메시지 보내기
KGTKakaoTalk.sendGameMessage(kakaoProfile: kakaoProfile, templateId: templateId, argumentDic: argumentDic) { error in
	if error.isSuccess {
		// 카카오톡 채팅 메시지 보내기 성공
	} else {
		if error.code == KGTErrorCode.messageSettingDisabled {
			// 받은이가 메시지 수신 거부를 설정한 경우
		} else if error.code == KGTErrorCode.exceedDailyUsage {
			// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
		} else if error.code == KGTErrorCode.notKakaoTalkUserexceedMonthlyUsage {
        			// 로그인한명이 특정 유저가앱에 '카카오톡'대해 유저가특정인에게 아닙니다.보낼 카카오 스토리만있는 가입한한달 유저의쿼터 계정과 같이 카카오톡 유저가 아닌 경우.
초과시 발생
		} else {
			// 카카오톡 게임채팅 메시지 수신보내기 여부실패
설정		}
실패
	}
})

카카오톡

...

친구 초대 메시지 전송하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_talksend_invite_profilemessage
nopaneltrue

코드 블럭
languageswift
import KakaoGameTubeKakaoGame
import KakaoGameTubeKakaoKakaoGameKakao

// 카카오톡[TODO] 프로필팝업창으로 조회하기띄울지 KGTKakaoTalk.talkProfile { error, profile in
	if error.isSuccess {
		// 카카오톡 프로필 조회 성공
		
		let talkProfile = profile여부 설정
let isSingle = true

// 로그인한[TODO] 유저의팝업창으로 카카오톡띄울지 프로필여부 정보설정
let isPopup = true
} else if error.code
== KGTErrorCode.notKakaoTalkUser {
		// 로그인[TODO] 템플릿 유저가Id '카카오톡'설정
유저가let 아닙니다.templateId 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
		// 카카오톡 프로필 조회 실패
	}
})

카카오톡 게임 친구 목록 조회하기

...

코드 블럭
languageswift
import KakaoGameTube
import KakaoGameTubeKakao

// 게임 친구 목록 조회하기
KGTKakaoTalk.friends= ""

// [TODO] 메시지 템플릿에 설정한 인자 설정
var argumentDic: [String : Any]? = [:]
argumentDic["rog_link"] = "test=100&hello20111"
argumentDic["bruce2"] = "test=100&hello=20111"

KGTKakaoTalk.sendInviteMessage(isSingle: isSingle, isPopup: isPopup, templateId: templateId, argumentDic: argumentDic) { error, playersusers in
	if error.isSuccess {
		// 카카오톡 게임초대 친구 목록메시지 조회보내기 성공.
		for playeruser in playersusers {
			if// let유저가 kakaoFriendProfile초대 =메시지를 player.idpProfile as? KGTKakaoFriendProfile {전송한 유저 목록 확인
			}
			} 		}else {
		// 전부 실패한 경우(공통된 원인 리턴해주기 필요)
      } else if error.code == KGTErrorCode.notKakaoTalkUsermessageSettingDisabled {
			// 받은이가 메시지 로그인수신 거부를 유저가설정한 '카카오톡'경우
유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡} 유저가else 아닌if 경우error.code 	} else== KGTErrorCode.exceedDailyUsage {
			// 카카오톡한명이 게임특정 친구앱에 목록대해 조회보낼 실패 	}
})

카카오톡 게임 메시지 보내기

...

코드 블럭
languageswift
import KakaoGameTube
import KakaoGameTubeKakao

// friends API를 통해 가져온 친구 객체
let kakaoProfile: KGTKakaoFriendProfile = // 카카오 프로필 (KGTKakaoFriendProfile 객체)

// [TODO] 템플릿 Id 설정
let templateId = ""

// [TODO] 메시지 템플릿에 설정한 인자 설정
var argumentDic: [String : Any]? = [:]
argumentDic["rog_link"] = "test=100&hello20111"
argumentDic["bruce2"] = "test=100&hello=20111"

// 카카오톡 게임 메시지 보내기
KGTKakaoTalk.sendGameMessage(kakaoProfile: kakaoProfile, templateId: templateId, argumentDic: argumentDic있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
        } else if error.code == KGTErrorCode.exceedMonthlyUsage {
			// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
		} else {
			// 카카오톡 초대 메시지 보내기 실패
		}
	}
})

카카오톡 채널 추가하기

발췌문 삽입
카카오 연동 기능 SDK 예제
카카오 연동 기능 SDK 예제
namekakao_talk_add_plus_friend
nopaneltrue

코드 블럭
languageswift
import KakaoGame
import KakaoGameKakao

// [TODO] 채널 Id 설정
let channelId = 0

KGTKakaoTalk.addChannel(channelId: channelId) { error in
	if error.isSuccess {
		// 채널 카카오톡추가 성공
채팅 메시지 보내기 성공 	} else { 		if error.code == KGTErrorCode.messageSettingDisablednotKakaoTalkUser {
		// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
			// 받은이가 메시지 수신 거부를 설정한 경우
		} else if error.code == KGTErrorCode.exceedDailyUsage {
			// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
		} else if error.code == KGTErrorCode.exceedMonthlyUsage {
			// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
		} else {
			// 카카오톡 채팅 메시지 보내기 실패
		}
	}
})

카카오톡 친구 초대 메시지 전송하기

...

코드 블럭
languageswift
import KakaoGameTube
import KakaoGameTubeKakao

// [TODO] 팝업창으로 띄울지 여부 설정
let isSingle = true

// [TODO] 팝업창으로 띄울지 여부 설정
let isPopup = true 채널 추가 실패
	}
})

내 초대 메시지로 가입한 친구 목록 조회하기

내 초대 메시지로 가입한 친구 목록을 조회하는 예제입니다.

가입한 친구가 없는 경우 빈 객체로 전달됩니다.

코드 블럭
languageswift
import KakaoGame
import KakaoGameKakao

// 이벤트 ID 설정
let eventId = 0

// 내가 초대한 플레이어 목록 조회하기
KGTKakaoInvitation.joiners(eventId: eventId) { error, players in
    if error.isSuccess {
        // 호출 성공
        // 내가 초대한 플레이어 목록 확인
        if players.isEmpty {
            // 앱에 가입한 유저 없음
        } else {
            // [TODO]앱에 템플릿가입한 Id유저 설정있음
let templateId = ""  // [TODO] 메시지 템플릿에 설정한 인자 설정 var argumentDic:for [Stringplayer :in Any]?players = [:]
argumentDic["rog_link"] = "test=100&hello20111"
argumentDic["bruce2"] = "test=100&hello=20111"

KGTKakaoTalk.sendInviteMessage(isSingle: isSingle, isPopup: isPopup, templateId: templateId, argumentDic: argumentDic) { error, users in
	if error.isSuccess {
		// 카카오톡 초대 메시지 보내기 성공
		for user in users {
			// 유저가 초대 메시지를 전송한 유저 목록 확인
		}
	} else {
		// 전부 실패한 경우(공통된 원인 리턴해주기 필요)
        if error.code == KGTErrorCode.messageSettingDisabled {
			// 받은이가 메시지 수신 거부를 설정한 경우
   {
				// 수신자의 플레이어 아이디
				let playerId = player.playerId
				let kakaoProfile = player.idpProfile as? KGTKakaoFriendProfile
				
				// 수신자의 닉네임
				let nickname = kakaoProfile?.nickname
				
				// 수신자의 프로필 썸네일 이미지
				let thumbnailImageUrl = kakaoProfile?.thumbnailImageUrl
				
                // 수신지의 탈퇴 이력 조회. UI상에서 탈퇴 여부 정보를 표시할 경우 해당 flag를 사용.
				let isUnregistered = kakaoProfile?.isUnregistered
			}
        }
    } else if error.code == KGTErrorCode.exceedDailyUsagenotKakaoTalkUser {
			// 한명이 특정 앱에 대해 보낼  있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
        } else if error.code == KGTErrorCode.exceedMonthlyUsage {
			// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
		// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
    } else {
			// 카카오톡 초대 메시지 보내기 실패
		}
	}
})

카카오톡 채널 추가하기

...


        // 호출 실패
    }
}

내가 초대 메시지를 보낸 친구 숫자 조회하기

내가 초대 메시지를 보낸 친구 숫자를 조회하는 예제입니다.

코드 블럭
languageswift
import KakaoGameTubeKakaoGame
import KakaoGameTubeKakaoKakaoGameKakao

// [TODO] 채널 Id이벤트 ID 설정
let channelIdeventId = 0

// 
KGTKakaoTalk.addChannel(channelId: channelId) { error in
	나를 초대한 플레이어 명 수 조회하기
KGTKakaoInvitation.receiversCount(eventId: eventId) { error, totalReceiversCount, joinersCount in
    if error.isSuccess {
		
        // 채널 추가 성공호출 성공
        
    } else if error.code == KGTErrorCode.notKakaoTalkUser {
		        // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정과계정)
같이 카카오톡 유저가 아닌 경우.
	} else {
		
        // 채널호출 실패
  추가 실패 	}
})