...
...
...
초기화 및 상태변화 이벤트 처리
...
앱 이벤트 메서드 초기화 (iOS Only)
발췌문 삽입 |
---|
| 초기화 및 상태변화 이벤트 처리 SDK 예제 |
---|
| 초기화 및 상태변화 이벤트 처리 SDK 예제 |
---|
name | application_ios_appDelegate |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
@main
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
override init() {
KGTApplication.setSwizzleAppDelegate(delegate: AppDelegate.description())
}
} |
SDK 초기화
발췌문 삽입 |
---|
| 초기화 및 상태변화 이벤트 처리 SDK 예제 |
---|
| 초기화 및 상태변화 이벤트 처리 SDK 예제 |
---|
name | application_init_sdk |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
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 예제 |
---|
name | application_start |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
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 예제 |
---|
name | application_pause |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
KGTApplication.pause() |
Resume 하기
발췌문 삽입 |
---|
| 초기화 및 상태변화 이벤트 처리 SDK 예제 |
---|
| 초기화 및 상태변화 이벤트 처리 SDK 예제 |
---|
name | application_resume |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
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 을 재시도 합니다. - 반복해서 문제가 발생하는 경우 앱을 종료하도록 합니다.
}
}
}) |
로그인
...
발췌문 삽입 |
---|
| 로그인 SDK 예제 |
---|
| 로그인 SDK 예제 |
---|
name | login |
---|
nopanel | true |
---|
|
기본 로그인 UI를
...
사용하지 않는 로그인하기
발췌문 삽입 |
---|
| 로그인 SDK 예제 |
---|
| 로그인 SDK 예제 |
---|
name | login_custom |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTube
KGTPlayer.login 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 error.code == KGTErrorCode.networkFailure ||
error.code == KGTErrorCode.serverTimeout ||
error.code == KGTErrorCode.serverConnectionFalied {
// [TODO] 네트워크 에러가 발생한 경우에는 로그인 재시도 요청 하여야 합니다.
} else if error.code == KGTErrorCode.forbiddenblockedByPolicy {
// [TODO] CBT기간동안차단당한 허용된국가 유저외에는코드 인증이또는 불가능IP 할대역에서 수로그인을 있습니다시도하였습니다. 유저에게이에 안내메시지대한 처리가 필요합니다.
} else if error.code == KGTErrorCode.userCanceled {
// [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
} else {
// [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
}
}
}) |
...
로그아웃
...
발췌문 삽입 |
---|
| 로그인 로그아웃 SDK 예제로그인 |
---|
| 로그아웃 SDK 예제 |
---|
name | loginlogout |
---|
nopanel | true |
---|
|
기본 로그아웃 UI를 사용하지 않는 로그아웃하기
발췌문 삽입 |
---|
| 로그아웃 SDK 예제 |
---|
| 로그아웃 SDK 예제 |
---|
name | logout_custom |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
// 로그인로그아웃 하고자 하는 IdpCode 셋팅
let idpCode = KGTIdpCode.Kakao
// 특정 idp로 로그인 하기
KGTPlayer.login(with: idpCode요청
KGTPlayer.logout(showUI: false) { error in
if error.isSuccess {
// IDP로그아웃 로그인과성공
플랫폼 로그인 성공
// 플랫폼에서[TODO] 발급한시작 현재화면으로 Player의 ID돌아가기
let} playerIdelse = KGTPlayer.currentPlayer?.playerId
{
// 플랫폼로그아웃 액세스실패
토큰
let accessToken = KGTPlayer.accessToken
// 현재 IDP 인증 정보를 가져옴
let idpProfile = KGTPlayer.currentPlayer?.idpProfile}
}) |
탈퇴
...
발췌문 삽입 |
---|
| 탈퇴 SDK 예제 |
---|
| 탈퇴 SDK 예제 |
---|
name | unregister |
---|
nopanel | true |
---|
|
기본 탈퇴 UI를 사용하지 않는 탈퇴하기
발췌문 삽입 |
---|
| 탈퇴 SDK 예제 |
---|
| 탈퇴 SDK 예제 |
---|
name | unregister_custom |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
// 탈퇴 요청
KGTPlayer.unregister(showUI: false) { error in
if error.isSuccess {
// 탈퇴 성공
// [TODO] 로그인이시작 성공하였으므로 게임 화면으로 이동합니다.돌아가기
} else {
// IDP 로그인 혹은 플랫폼 로그인 실패
// [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다.
if error.code == KGTErrorCode.networkFailure ||
error.code == KGTErrorCode.serverTimeout ||
error.code == KGTErrorCode.serverConnectionFalied {
// [TODO] 네트워크 에러가 발생한 경우에는 로그인 재시도 요청 하여야 합니다.
} else 탈퇴 실패
}
}) |
계정 연결
...
발췌문 삽입 |
---|
| 계정 연결 SDK 예제 |
---|
| 계정 연결 SDK 예제 |
---|
name | connect |
---|
nopanel | true |
---|
|
기본 계정 연결 UI를 사용하지 않는 계정 연결하기
발췌문 삽입 |
---|
| 계정 연결 SDK 예제 |
---|
| 계정 연결 SDK 예제 |
---|
name | connect_custom |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
// 로그인 하고자 하는 IdpCode 셋팅
let idpCode = KGTIdpCode.Kakao
// 특정 idp로 계정 연결 하기
KGTPlayer.connect(idpCode: idpCode) { error in
if error.isSuccess {
// IDP 연결 성공
// Player ID 는 변경되지 않습니다.
} else {
// IDP 연결 실패
if error.code == KGTErrorCode.blockedByPolicyinvalidParameter {
// [TODO]잘못된 차단당한인자가 국가전달 코드된 또는 IP 대역에서 로그인을 시도하였습니다. 이에 대한 처리가 필요합니다.
경우
} else if error.code == KGTErrorCode.userCancelednotAuthorized {
// [TODO]현재 사용자가로그인이 로그인안되어 진행있는 중경우
취소한 } 상황이므로else 로그인if 화면을 유지 하여야 합니다.
} else error.code == KGTErrorCode.invalidState {
// [TODO]현재 나머지인증 에러가된 발생한IDP 경우에는가 에러계정 안내연결 후가능한 로그인idp가 재시도아닌 요청경우
하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다. } else if error.code == KGTErrorCode.alreadyUsedIdpAccount {
// 이미 연결되어 있는 계정이 있는 경우
} else {
// 기타 에러 발생
}
}
}) |
...
프로필
...
내 정보 조회하기
발췌문 삽입 |
---|
| 로그아웃 프로필 SDK 예제로그아웃 |
---|
| 프로필 SDK 예제 |
---|
name | logoutplayer_currentPlayer |
---|
nopanel | true |
---|
|
기본 로그아웃 UI를 사용하는 로그아웃하기
...
코드 블럭 |
---|
|
import KakaoGame
let localPlayer = KGTPlayer.currentPlayer |
내 IDP 정보 조회하기
발췌문 삽입 |
---|
| 프로필 SDK 예제 |
---|
| 프로필 SDK 예제 |
---|
name | logoutplayer_uiidpProfile |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
//let 로그아웃idpProfile 요청= KGTPlayer.logout(showUI: true) { error in
if error.isSuccess {
// 로그아웃 성공
// [TODO] 시작 화면으로 돌아가기
} else {
// 로그아웃 실패
}
}) |
기본 로그아웃 UI를 사용하지 않는 로그아웃하기
currentPlayer?.idpProfile |
시스템 정보
...
언어 코드 가져오기
발췌문 삽입 |
---|
| 로그아웃 시스템 정보 SDK 예제로그아웃 |
---|
| 시스템 정보 SDK 예제 |
---|
name | logoutsystem_language_customcode |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
//let 로그아웃languageCode 요청= KGTPlayer.logout(showUI: false) { error in
if error.isSuccess {
// 로그아웃 성공
// [TODO] 시작 화면으로 돌아가기
} else {
// 로그아웃 실패
}
}) |
탈퇴
계정 연결
...
기본 계정 연결 UI를 사용하는 계정 연결하기
...
국가 코드 가져오기
발췌문 삽입 |
---|
| 시스템 정보 SDK 예제 |
---|
| 시스템 정보 SDK 예제 |
---|
name | system_country_code |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
let countryCode = KGTSystem.countryCode |
IP 기반 국가 코드 가져오기
발췌문 삽입 |
---|
| 시스템 정보 SDK 예제 |
---|
| 시스템 정보 SDK 예제 |
---|
name | system_geo_country_code |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
let countryCode = KGTSystem.geoCountryCode |
기기 아이디 가져오기
발췌문 삽입 |
---|
| 시스템 정보 SDK 예제 |
---|
| 시스템 정보 SDK 예제 |
---|
name | system_device_id |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
KGTPlayer.connectlet {deviceId error in
if error.isSuccess {
// IDP 연결 성공
// Player ID 는 변경되지 않습니다.
} else {
// IDP 연결 실패
if error.code == KGTErrorCode.invalidParameter {
// 잘못된 인자가 전달 된 경우
} else if error.code == KGTErrorCode.notAuthorized {
// 현재 로그인이 안되어 있는 경우
} else if error.code == KGTErrorCode.invalidState {
// 현재 인증 된 IDP 가 계정 연결 가능한 idp가 아닌 경우
} else if error.code == KGTErrorCode.alreadyUsedIdpAccount {
// 이미 연결되어 있는 계정이 있는 경우
} else {
// 기타 에러 발생
}
}
}) |
기본 계정 연결 UI를 사용하지 않는 계정 연결하기
...
코드 블럭 |
---|
|
import KakaoGameTube
// 로그인 하고자 하는 IdpCode 셋팅
let idpCode = KGTIdpCode.Kakao
// 특정 idp로 계정 연결 하기
KGTPlayer.connect(idpCode: idpCode) { error in
if error.isSuccess {
// IDP 연결 성공
// Player ID 는 변경되지 않습니다= KGTSystem.deviceId |
기기 모델 가져오기
발췌문 삽입 |
---|
| 시스템 정보 SDK 예제 |
---|
| 시스템 정보 SDK 예제 |
---|
name | system_device_model |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
let deviceModel = KGTSystem.deviceModel |
OS 이름 가져오기
발췌문 삽입 |
---|
| 시스템 정보 SDK 예제 |
---|
| 시스템 정보 SDK 예제 |
---|
name | system_os_name |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
let osName = KGTSystem.osName |
네트워크 연결 여부 가져오기
발췌문 삽입 |
---|
| 시스템 정보 SDK 예제 |
---|
| 시스템 정보 SDK 예제 |
---|
name | system_is_network_connected |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
let isNetworkConnected = KGTSystem.isNetworkConnected |
연결된 네트워크 타입 가져오기
발췌문 삽입 |
---|
| 시스템 정보 SDK 예제 |
---|
| 시스템 정보 SDK 예제 |
---|
name | system_network_type |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
let networkType = KGTSystem.networkType |
카카오 연동 기능
...
카카오톡 게임 메시지 수신 여부 설정하기
발췌문 삽입 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
name | kakao_talk_show_setting |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
import KakaoGameKakao
// 카카오톡 게임 메시지 수신 여부 설정 뷰 띄우기
KGTKakaoTalk.showSetting { error, isAllowedMe in
if error.isSuccess {
// 카카오톡 게임 메시지 수신 여부 설정 성공
let isAllowedMe = isAllowedMe // 설정된 메시지 수신 허용 여부
} else if error.code == KGTErrorCode.notKakaoTalkUser {
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
} else {
// IDP카카오톡 연결게임 실패메시지 수신 if error.code == KGTErrorCode.invalidParameter {
// 잘못된 인자가 전달 된 경우
} else if error.code == KGTErrorCode.notAuthorized여부 설정 실패
}
}) |
카카오톡 프로필 조회하기
발췌문 삽입 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
name | kakao_talk_talk_profile |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGame
import KakaoGameKakao
// 카카오톡 프로필 조회하기
KGTKakaoTalk.talkProfile { error, profile in
if error.isSuccess {
// 현재카카오톡 로그인이프로필 안되어조회 있는성공
경우
}let else if error.code == KGTErrorCode.invalidState {
talkProfile = profile // 현재로그인한 인증유저의 된카카오톡 IDP프로필 가정보
계정 연결 가능한 idp가 아닌 경우
} else if error.code == KGTErrorCode.alreadyUsedIdpAccountnotKakaoTalkUser {
// 이미로그인 연결되어한 있는 계정이 있는 경우
유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
} else {
// 기타카카오톡 에러프로필 발생조회 }실패
}
}) |
프로필
...
카카오톡 게임 친구 목록 조회하기
발췌문 삽입 |
---|
| 프로필 카카오 연동 기능 SDK 예제프로필 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
name | playerkakao_talk_currentPlayerfriends |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
import KakaoGameKakao
let
localPlayer// = KGTPlayer.currentPlayer |
내 IDP 정보 조회하기
...
코드 블럭 |
---|
|
import KakaoGameTube
let idpProfile = KGTPlayer.currentPlayer?.idpProfile |
시스템 정보
언어 코드 가져오기
...
코드 블럭 |
---|
|
import KakaoGameTube
let languageCode = KGTSystem.languageCode |
국가 코드 가져오기
...
코드 블럭 |
---|
|
import KakaoGameTube
let countryCode = KGTSystem.countryCode |
IP 기반 국가 코드 가져오기
...
코드 블럭 |
---|
|
import KakaoGameTube
let countryCode = KGTSystem.geoCountryCode |
기기 아이디 가져오기
...
게임 친구 목록 조회하기
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 예제 |
---|
name | kakao_talk_send_game_message |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
let deviceId = KGTSystem.deviceId |
기기 모델 가져오기
...
코드 블럭 |
---|
|
import KakaoGameTube
let deviceModel = KGTSystem.deviceModel |
OS 이름 가져오기
...
코드 블럭 |
---|
|
import KakaoGameTube
let osName = KGTSystem.osName |
네트워크 연결 여부 가져오기
...
코드 블럭 |
---|
|
import KakaoGameTube
let isNetworkConnected = KGTSystem.isNetworkConnected |
연결된 네트워크 타입 가져오기
...
코드 블럭 |
---|
|
import KakaoGameTube
let networkType = KGTSystem.networkType |
카카오 연동 기능
...
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.exceedMonthlyUsage {
// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
} else {
// 카카오톡 채팅 메시지 보내기 실패
}
}
}) |
카카오톡 친구 초대 메시지 전송하기
발췌문 삽입 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
name | kakao_talk_showsend_invite_settingmessage |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
import KakaoGameTubeKakaoKakaoGameKakao
// 카카오톡[TODO] 게임팝업창으로 메시지띄울지 수신 여부 설정 뷰 띄우기
KGTKakaoTalk.showSetting {
error, isAllowedMe in
if error.isSuccess {
// 카카오톡 게임 메시지 수신 여부 설정 성공
let isAllowedMe = isAllowedMe // 설정된 메시지 수신 허용 여부
} else if error.code == KGTErrorCode.notKakaoTalkUser {
isSingle = true
// [TODO] 팝업창으로 띄울지 여부 설정
let isPopup = true
// 로그인[TODO] 한템플릿 유저가Id '카카오톡'설정
유저가let 아닙니다.templateId 카카오= 스토리만""
가입한
유저의 계정과 같이 카카오톡 유저가 아닌 경우.
} else {
// 카카오톡 게임 메시지 수신 여부 설정 실패
}
}) |
카카오톡 프로필 조회하기
...
코드 블럭 |
---|
|
import KakaoGameTube
import KakaoGameTubeKakao
// 카카오톡 프로필 조회하기
KGTKakaoTalk.talkProfile// [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, profileusers in
if error.isSuccess {
// 카카오톡 초대 프로필메시지 조회보내기 성공
for letuser talkProfilein =users profile{
// 로그인한유저가 유저의초대 카카오톡메시지를 프로필전송한 정보유저 목록 확인
}
} else if error.code == KGTErrorCode.notKakaoTalkUser {
// 로그인전부 한실패한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
} else경우(공통된 원인 리턴해주기 필요)
if error.code == KGTErrorCode.messageSettingDisabled {
// 카카오톡받은이가 프로필메시지 조회수신 실패거부를 }
}) |
카카오톡 게임 친구 목록 조회하기
...
코드 블럭 |
---|
|
import KakaoGameTube
import KakaoGameTubeKakao
// 게임 친구 목록 조회하기
KGTKakaoTalk.friends { error, players in
if error.isSuccess설정한 경우
} else if error.code == KGTErrorCode.exceedDailyUsage {
// 카카오톡한명이 게임특정 친구앱에 목록대해 조회보낼 성공.
for player in players {
if let kakaoFriendProfile = player.idpProfile as? KGTKakaoFriendProfile {
}
}수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
} else if error.code == KGTErrorCode.notKakaoTalkUserexceedMonthlyUsage {
// 로그인한명이 한특정 유저가앱에 '카카오톡'대해 유저가특정인에게 아닙니다.보낼 카카오수 스토리만있는 가입한한달 유저의쿼터 계정과초과시 같이 카카오톡 유저가 아닌 경우.
발생
} else {
// 카카오톡 게임초대 친구메시지 목록보내기 조회실패
실패 }
}
}) |
카카오톡
...
채널 추가하기
발췌문 삽입 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
| 카카오 연동 기능 SDK 예제 |
---|
name | kakao_talk_sendadd_gameplus_messagefriend |
---|
nopanel | true |
---|
|
코드 블럭 |
---|
|
import KakaoGameTubeKakaoGame
import KakaoGameTubeKakaoKakaoGameKakao
// 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.exceedMonthlyUsage {
// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
} else {
// 카카오톡 채팅 메시지 보내기 실패
}
}
}) |
카카오톡 친구 초대 메시지 전송하기
...
코드 블럭 |
---|
|
import KakaoGameTube
import KakaoGameTubeKakao
// [TODO] 팝업창으로 띄울지 여부 설정
let isSingle = true
// [TODO] 팝업창으로 띄울지 여부 설정
let isPopup = true
// [TODO] 템플릿 Id 설정
let templateId = ""
// [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, users in
if error.isSuccess {
// 카카오톡 초대 메시지 보내기 성공
for user in users {
// 유저가 초대 메시지를 전송한 유저 목록 확인
}
} else {
// 전부 실패한 경우(공통된 원인 리턴해주기 필요)
if error.code == KGTErrorCode.messageSettingDisabled {
// 받은이가 메시지 수신 거부를 설정한 경우
[TODO] 채널 Id 설정
let channelId = 0
KGTKakaoTalk.addChannel(channelId: channelId) { error in
if error.isSuccess {
// 채널 추가 성공
} else if error.code == KGTErrorCode.notKakaoTalkUser {
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
} else {
// 채널 추가 실패
}
}) |
내 초대 메시지로 가입한 친구 목록 조회하기
내 초대 메시지로 가입한 친구 목록을 조회하는 예제입니다.
가입한 친구가 없는 경우 빈 객체로 전달됩니다.
코드 블럭 |
---|
|
import KakaoGame
import KakaoGameKakao
// 이벤트 ID 설정
let eventId = 0
// 내가 초대한 플레이어 목록 조회하기
KGTKakaoInvitation.joiners(eventId: eventId) { error, players in
if error.isSuccess {
// 호출 성공
// 내가 초대한 플레이어 목록 확인
if players.isEmpty {
// 앱에 가입한 유저 없음
} else {
// 앱에 가입한 유저 있음
for player in players {
// 수신자의 플레이어 아이디
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 {
// 카카오톡 초대 메시지 보내기 실패
}
}
}) |
카카오톡 채널 추가하기
...
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
} else {
// 호출 실패
}
} |
내가 초대 메시지를 보낸 친구 숫자 조회하기
내가 초대 메시지를 보낸 친구 숫자를 조회하는 예제입니다.
코드 블럭 |
---|
|
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 {
// 호출 채널실패
추가 실패 }
}) |