초기화 및 상태변화 이벤트 처리
SDK 초기화
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Initialization and Status Change Event Processing SDK Example'.
std::map<std::wstring, std::wstring> kakaoSetting, facebookSetting, googleSetting; kakaoSetting.insert(std::pair<std::wstring, std::wstring>(TEXT("jsKey"), TEXT("acd84e5c92067a159573483d8877de67"))); facebookSetting.insert(std::pair<std::wstring, std::wstring>(TEXT("clientId"), TEXT("1421382574931990"))); googleSetting.insert(std::pair<std::wstring, std::wstring>(TEXT("clientId"), TEXT("1002041625464-s2ruvcn1auv3rksr799gb4matvtvppb5.apps.googleusercontent.com"))); googleSetting.insert(std::pair<std::wstring, std::wstring>(TEXT("clientSecret"), TEXT("5MtQUUZ1sHl7RYgrhee-7-22"))); std::map<KakaoGame::Data::KGTIdpCode, std::map<std::wstring, std::wstring>> idpSettings; idpSettings.insert(std::pair<KakaoGame::Data::KGTIdpCode, std::map<std::wstring, std::wstring>>(KakaoGame::Data::KGTIdpCode::Kakao, kakaoSetting)); idpSettings.insert(std::pair<KakaoGame::Data::KGTIdpCode, std::map<std::wstring, std::wstring>>(KakaoGame::Data::KGTIdpCode::Facebook, facebookSetting)); idpSettings.insert(std::pair<KakaoGame::Data::KGTIdpCode, std::map<std::wstring, std::wstring>>(KakaoGame::Data::KGTIdpCode::Google, googleSetting)); /** * 단일 앱으로 사용하는 경우 */ KakaoGame::Data::KGTConfig config; config.setAppInfo( TEXT("909428"), // appID TEXT("c3c38bbfa3828b342d946e9770c974d0"), // appSecret TEXT("1.0.0"), // appVersion TEXT("gameWeb"), // market TEXT("14"), // ageRating KakaoGame::Data::KGTServerType::QA, // server type KakaoGame::Data::KGTLogLevel::Error, // log level idpSettings // idpSettings ); /** * 앱 그룹을 사용하는 경우 */ std::map<std::wstring, std::wstring> apps; apps.insert(std::pair<std::wstring, std::wstring>(TEXT("909428"), TEXT("c3c38bbfa3828b342d946e9770c974d0"))); apps.insert(std::pair<std::wstring, std::wstring>(TEXT("921478"), TEXT("5891c32124ca35821890a0bc1cec77a5"))); apps.insert(std::pair<std::wstring, std::wstring>(TEXT("921482"), TEXT("43d0abf4ba4025994068607c545f04dc"))); apps.insert(std::pair<std::wstring, std::wstring>(TEXT("947947"), TEXT("3c7fde7309a1fad65961110e8e290e28"))); apps.insert(std::pair<std::wstring, std::wstring>(TEXT("947950"), TEXT("7cc67cba7e3406585543d493f1548473"))); config.setAppGroupInfos( TEXT("tubeAppGroup"), // appGroupId apps, // app info map TEXT("1.0.0"), // appVersion TEXT("gameWeb"), // market TEXT("14"), // ageRating KakaoGame::Data::KGTServerType::QA, // server type KakaoGame::Data::KGTLogLevel::Error, // log level idpSettings // idpSettings ); KakaoGame::API::KGTApplication applicationApi; applicationApi.initSDK(config);
스타트 (Start) 하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Initialization and Status Change Event Processing SDK Example'.
동기식 예제
#include "KakaoGameLib.h" KakaoGame::Data::KGTResult result; KakaoGame::API::KGTApplication applicationApi; applicationApi.start(GetSafeHwnd(), result); if (result.isSuccess()) { // 스타트가 성공 한 경우 // 자동로그인 여부 KakaoGame::API::KGTPlayer playerApi; boolean isLoggedIn = playerApi.isLoggedIn(); if (isLoggedIn) { // 플랫폼에서 발급한 현재 Player의 ID KakaoGame::Data::KGTPlayer player; playerApi.getCurrentPlayer(player); std::wstring playerId = player.playerId; // 플랫폼에서 발급한 현재 Player의 ID std::wstring accessToken = playerApi.getAccessToken(); // 플랫폼 액세스 토큰(AccessToken) // [TODO] 게임 화면으로 이동 합니다. } else { // [TODO] 자동로그인이 안 된 경우 로그인 화면으로 이동 합니다. } } else { // 스타트가 실패 한 경우 - 초기화가 실패한 경우 이므로 스타트를 재시도 하거나 앱을 종료 하여야 합니다. if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code || KakaoGame::Data::KGTResultCode::ServerTimeout == result.code || KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code) { // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도 } else { // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 스타트 재시도 요청 하여야 합니다. - 문제가 반복해서 발생하는 경우 에러코드 및 로그 확인 후 원인 파악이 필요합니다. } }
비동기식 예제
#include "KakaoGameLib.h" KakaoGame::API::KGTApplication applicationApi; applicationApi.start(GetSafeHwnd(), [this](KakaoGame::Data::KGTResult result) { if (result.isSuccess()) { // 스타트가 성공 한 경우 // 자동로그인 여부 KakaoGame::API::KGTPlayer playerApi; boolean isLoggedIn = playerApi.isLoggedIn(); if (isLoggedIn) { // 플랫폼에서 발급한 현재 Player의 ID KakaoGame::Data::KGTPlayer player; playerApi.getCurrentPlayer(player); std::wstring playerId = player.playerId; // 플랫폼에서 발급한 현재 Player의 ID std::wstring accessToken = playerApi.getAccessToken(); // 플랫폼 액세스 토큰(AccessToken) // [TODO] 게임 화면으로 이동 합니다. } else { // [TODO] 자동로그인이 안 된 경우 로그인 화면으로 이동 합니다. } } else { // 스타트가 실패 한 경우 - 초기화가 실패한 경우 이므로 스타트를 재시도 하거나 앱을 종료 하여야 합니다. if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code || KakaoGame::Data::KGTResultCode::ServerTimeout == result.code || KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code) { // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도 } else { // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 스타트 재시도 요청 하여야 합니다. - 문제가 반복해서 발생하는 경우 에러코드 및 로그 확인 후 원인 파악이 필요합니다. } } });
로그인
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Login SDK Example'.
기본 로그인 UI를 사용하지 않는 로그인하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Login SDK Example'.
동기식 예제
#include "KakaoGameLib.h" // 로그인 하고자 하는 idpCode 셋팅 KakaoGame::Data::KGTIdpCode idpCode = KakaoGame::Data::KGTIdpCode::Kakao; KakaoGame::Data::KGTResult result; KakaoGame::API::KGTPlayer playerApi; playerApi.login(GetSafeHwnd(), idpCode, result); if (result.isSuccess()) { // IDP 로그인과 플랫폼 로그인 성공 KakaoGame::Data::KGTPlayer player; KakaoGame::API::KGTPlayer playerApi; playerApi.getCurrentPlayer(player); std::wstring playerId = player.playerId; // 플랫폼에서 발급한 현재 Player의 ID std::wstring accessToken = playerApi.getAccessToken(); // 플랫폼 액세스 토큰(AccessToken) // [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다. } else { // IDP 로그인 혹은 플랫폼 로그인 실패 // [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다. if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code || KakaoGame::Data::KGTResultCode::ServerTimeout == result.code || KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code) { // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도 } else if (KakaoGame::Data::KGTResultCode::Forbidden== result.code) { // [TODO] CBT기간동안 허용된 유저외에는 인증이 불가능 할 수 있습니다. 유저에게 안내메시지 처리가 필요합니다. } else if (KakaoGame::Data::KGTResultCode::UserCanceled== result.code) { // [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다. } else { // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다. } }
비동기식 예제
#include "KakaoGameLib.h" // 로그인 하고자 하는 idpCode 셋팅 KakaoGame::Data::KGTIdpCode idpCode = KakaoGame::Data::KGTIdpCode::Kakao; KakaoGame::API::KGTPlayer playerApi; playerApi.login(GetSafeHwnd(), idpCode, [this](KakaoGame::Data::KGTResult result) { if (result.isSuccess()) { // IDP 로그인과 플랫폼 로그인 성공 KakaoGame::Data::KGTPlayer player; KakaoGame::API::KGTPlayer playerApi; playerApi.getCurrentPlayer(player); std::wstring playerId = player.playerId; // 플랫폼에서 발급한 현재 Player의 ID std::wstring accessToken = playerApi.getAccessToken(); // 플랫폼 액세스 토큰(AccessToken) // [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다. } else { // IDP 로그인 혹은 플랫폼 로그인 실패 // [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다. if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code || KakaoGame::Data::KGTResultCode::ServerTimeout == result.code || KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code) { // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도 } else if (KakaoGame::Data::KGTResultCode::Forbidden== result.code) { // [TODO] CBT기간동안 허용된 유저외에는 인증이 불가능 할 수 있습니다. 유저에게 안내메시지 처리가 필요합니다. } else if (KakaoGame::Data::KGTResultCode::UserCanceled== result.code) { // [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다. } else { // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다. } } });
스퀘어 토큰을 사용하여 로그인하기
동기식 예제
#include "KakaoGameLib.h" // 로그인을 요청하는 사용자 아이디 std::wstring playerId; // 스퀘어에서 전달받은 토큰 std::wstring squareToken; KakaoGame::Data::KGTResult result; KakaoGame::API::KGTPlayer playerApi; playerApi.loginIdpWithSquareToken(GetSafeHwnd(), playerId, squareToken, result); if (result.isSuccess()) { // IDP 로그인과 플랫폼 로그인 성공 KakaoGame::Data::KGTPlayer player; KakaoGame::API::KGTPlayer playerApi; playerApi.getCurrentPlayer(player); std::wstring playerId = player.playerId; // 플랫폼에서 발급한 현재 Player의 ID std::wstring accessToken = playerApi.getAccessToken(); // 플랫폼 액세스 토큰(AccessToken) // [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다. } else { // IDP 로그인 혹은 플랫폼 로그인 실패 // [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다. if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code || KakaoGame::Data::KGTResultCode::ServerTimeout == result.code || KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code) { // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도 } else { // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다. } }
비동기식 예제
#include "KakaoGameLib.h" // 로그인을 요청하는 사용자 아이디 std::wstring playerId; // 스퀘어에서 전달받은 토큰 std::wstring squareToken; KakaoGame::API::KGTPlayer playerApi; playerApi.login(GetSafeHwnd(), playerId, squareToken, [this](KakaoGame::Data::KGTResult result) { if (result.isSuccess()) { // IDP 로그인과 플랫폼 로그인 성공 KakaoGame::Data::KGTPlayer player; KakaoGame::API::KGTPlayer playerApi; playerApi.getCurrentPlayer(player); std::wstring playerId = player.playerId; // 플랫폼에서 발급한 현재 Player의 ID std::wstring accessToken = playerApi.getAccessToken(); // 플랫폼 액세스 토큰(AccessToken) // [TODO] 로그인이 성공하였으므로 게임 화면으로 이동합니다. } else { // IDP 로그인 혹은 플랫폼 로그인 실패 // [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다. if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code || KakaoGame::Data::KGTResultCode::ServerTimeout == result.code || KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code) { // [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도 } else { // [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다. } } });
로그아웃
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Logout SDK Example'.
기본 로그아웃 UI를 사용하지 않는 로그아웃하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Logout SDK Example'.
동기식 예제
#include "KakaoGameLib.h" KakaoGame::Data::KGTResult result; KakaoGame::API::KGTPlayer playerApi; playerApi.logout(GetSafeHwnd(), false, result); if (result.isSuccess()) { // 로그아웃 성공 // [TODO] 시작 화면으로 돌아가기 } else { // 로그아웃 실패 }
비동기식 예제
#include "KakaoGameLib.h" KakaoGame::API::KGTPlayer playerApi; playerApi.logout(GetSafeHwnd(), false, [this](KakaoGame::Data::KGTResult result) { if (result.isSuccess()) { // 로그아웃 성공 // [TODO] 시작 화면으로 돌아가기 } else { // 로그아웃 실패 } });
탈퇴
탈퇴 UI를 개발사에서 직접 구현하고 싶을 경우(탈퇴 UI를 사용하고 싶지 않은 경우)를 위해서, 탈퇴 API가 제공됩니다.
기본 탈퇴 UI를 사용하지 않는 탈퇴하기
기본 탈퇴 UI를 사용하지 않는 탈퇴하는 예제입니다.
동기식 예제
#include "KakaoGameLib.h" KakaoGame::Data::KGTResult result; KakaoGame::API::KGTPlayer playerApi; playerApi.unregister(GetSafeHwnd(), false, result); if (result.isSuccess()) { // 탈퇴 성공 // [TODO] 시작 화면으로 돌아가기 } else { // 탈퇴 실패 }
비동기식 예제
#include "KakaoGameLib.h" KakaoGame::API::KGTPlayer playerApi; playerApi.unregister(GetSafeHwnd(), false, [this](KakaoGame::Data::KGTResult result) { if (result.isSuccess()) { // 탈퇴 성공 // [TODO] 시작 화면으로 돌아가기 } else { // 탈퇴 실패 } });
계정 연결
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Account Linking SDK Example'.
기본 계정 연결 UI를 사용하지 않는 계정 연결하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Account Linking SDK Example'.
동기식 예제
#include "KakaoGameLib.h" // 연결하고자 하는 idpCode 셋팅 KakaoGame::Data::KGTIdpCode idpCode = KakaoGame::Data::KGTIdpCode::Kakao; KakaoGame::Data::KGTResult result; KakaoGame::API::KGTPlayer playerApi; playerApi.connect(GetSafeHwnd(), idpCode, result); if (result.isSuccess()) { // IDP 연결 성공 // Player ID 는 변경되지 않습니다. } else { // IDP 연결 실패 if (KakaoGame::Data::KGTResultCode::InvalidParameter== result.code) { // 잘못된 인자가 전달 된 경우 } else if (KakaoGame::Data::KGTResultCode::NotAuthorized== result.code) { // 현재 로그인이 안되어 있는 경우 } else if (KakaoGame::Data::KGTResultCode::InvalidState== result.code) { // 현재 인증 된 IDP 가 계정 연결 가능한 idp가 아닌 경우 } else if (KakaoGame::Data::KGTResultCode::AlreadyUsedIDPAccount== result.code) { // 이미 연결되어 있는 계정이 있는 경우 } else { // 기타 에러 발생 } }
비동기식 예제
#include "KakaoGameLib.h" // 연결하고자 하는 idpCode 셋팅 KakaoGame::Data::KGTIdpCode idpCode = KakaoGame::Data::KGTIdpCode::Kakao; KakaoGame::API::KGTPlayer playerApi; playerApi.connect(GetSafeHwnd(), idpCode, [this](KakaoGame::Data::KGTResult result) { if (result.isSuccess()) { // IDP 연결 성공 // Player ID 는 변경되지 않습니다. } else { // IDP 연결 실패 if (KakaoGame::Data::KGTResultCode::InvalidParameter== result.code) { // 잘못된 인자가 전달 된 경우 } else if (KakaoGame::Data::KGTResultCode::NotAuthorized== result.code) { // 현재 로그인이 안되어 있는 경우 } else if (KakaoGame::Data::KGTResultCode::InvalidState== result.code) { // 현재 인증 된 IDP 가 계정 연결 가능한 idp가 아닌 경우 } else if (KakaoGame::Data::KGTResultCode::AlreadyUsedIDPAccount== result.code) { // 이미 연결되어 있는 계정이 있는 경우 } else { // 기타 에러 발생 } } });
프로필
내 정보 조회하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Profile SDK Example'.
#include "KakaoGameLib.h" KakaoGame::Data::KGTPlayer player; KakaoGame::API::KGTPlayer playerApi; playerApi.getCurrentPlayer(player);
내 IDP 정보 조회하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Profile SDK Example'.
#include "KakaoGameLib.h" KakaoGame::Data::KGTPlayer player; KakaoGame::API::KGTPlayer playerApi; playerApi.getCurrentPlayer(player); player.kakaoProfile;
시스템 정보
언어 코드 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring languageCode = systemApi.getLanguageCode();
언어 태그 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring languageCode = systemApi.getLanguageTag();
국가 코드 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring countryCode = systemApi.getCountryCode();
IP 기반 국가 코드 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring countryCode = systemApi.getGeoCountryCode();
기기 아이디 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring deviceId = systemApi.getDeviceId();
기기 모델 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring deviceModel = systemApi.getDeviceModel();
OS 이름 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring osName = systemApi.getOSName();
네트워크 연결 여부 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; boolean networkConnected = systemApi.isNetworkConnected();
연결된 네트워크 타입 가져오기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_System Information SDK Example'.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring networkType = systemApi.getNetworkType();
설정된 게임 언어 코드 가져오기
설정된 게임 언어 코드를 반환한다.
설정된 언어 코드가 없는 경우 기기에 설정되어 있는 언어 설정 정보를 가져오며, 언어 코드는 ISO 639-1 표준에 따른 값을 반환한다.
#include "KakaoGameLib.h" KakaoGame::API::KGTSystem systemApi; std::wstring gameLanguageCode = systemApi.getGameLanguageCode();
게임 언어 코드 설정하기
게임에서 사용하는 언어를 플랫폼에서 동기화 해서 사용하도록 설정한다.
아래와 같은 언어 코드를 지원한다.
(Start API 호출 이전에 설정 가능)
device: 디바이스 설정 값. 디바이스 설정 값으로 되돌릴 때 사용할 수 있음. (default)
en: 영어
ko: 한국어
ja: 일어
zh_hant: 중국어 (번체)
zh_hans: 중국어 (간체)
#include "KakaoGameLib.h" // KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::en; // 영어 // KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::ko; // 한국어 // KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::ja; // 일어 // KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::zh_hant; // 중국어 (번체) // KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::zh_hans; // 중국어 (간체) KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::device; // 디바이스 설정 값 KakaoGame::API::KGTSystem systemApi; systemApi.setGameLanguageCode(languageCode);
카카오 연동 기능
카카오톡 게임 메시지 수신 여부 설정하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Kakao Integration Feature SDK Example'.
동기식 예제
#include "KakaoGameLib.h" KakaoGame::Data::KGTResult result; bool isAlloweMe; KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 카카오톡 게임 메시지 수신 여부 설정 뷰 띄우기 kakaotalkApi.showSetting(GetSafeHwnd(), result, isAlloweMe); if (result.isSuccess()) { // 카카오톡 게임 메시지 수신 여부 설정 성공 isAlloweMe; // 설정된 메시지 수신 허용 여부 } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 카카오톡 게임 메시지 수신 여부 설정 실패 }
비동기식 예제
#include "KakaoGameLib.h" KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 카카오톡 게임 메시지 수신 여부 설정 뷰 띄우기 kakaotalkApi.showSetting(GetSafeHwnd(), [this](KakaoGame::Data::KGTResult result, bool isAlloweMe) { if (result.isSuccess()) { // 카카오톡 게임 메시지 수신 여부 설정 성공 isAlloweMe; // 설정된 메시지 수신 허용 여부 } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 카카오톡 게임 메시지 수신 여부 설정 실패 } });
카카오톡 프로필 조회하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Kakao Integration Feature SDK Example'.
동기식 예제
#include "KakaoGameLib.h" KakaoGame::Data::KGTResult result; KakaoGame::Data::KGTKakaoTalkProfile profile; KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 카카오톡 프로필 조회하기 kakaotalkApi.talkProfile(result, profile); if (result.isSuccess()) { // 카카오톡 프로필 조회 성공 profile; // 로그인한 유저의 카카오톡 프로필 정보 } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 카카오톡 프로필 조회 실패 }
비동기식 예제
#include "KakaoGameLib.h" KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 카카오톡 프로필 조회하기 kakaotalkApi.talkProfile([this](KakaoGame::Data::KGTResult result, KakaoGame::Data::KGTKakaoTalkProfile profile) { if (result.isSuccess()) { // 카카오톡 프로필 조회 성공 profile; // 로그인한 유저의 카카오톡 프로필 정보 } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 카카오톡 프로필 조회 실패 } });
카카오톡 게임 친구 목록 조회하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Kakao Integration Feature SDK Example'.
동기식 예제
#include "KakaoGameLib.h" KakaoGame::Data::KGTResult result; std::vector<KakaoGame::Data::KGTPlayer> players; KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 게임 친구 목록 조회하기 kakaotalkApi.friends(result, players); if (result.isSuccess()) { // 카카오톡 게임 친구 목록 조회 성공. // 게임 친구 목록 for each (auto player in players) { } } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 카카오톡 프로필 조회 실패 }
비동기식 예제
#include "KakaoGameLib.h" KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 게임 친구 목록 조회하기 kakaotalkApi.friends([this](KakaoGame::Data::KGTResult result, std::vector<KakaoGame::Data::KGTPlayer> players) { if (result.isSuccess()) { // 카카오톡 게임 친구 목록 조회 성공. // 게임 친구 목록 for each (auto player in players) { } } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 카카오톡 게임 친구 목록 조회 실패 } });
카카오톡 게임 메시지 보내기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Kakao Integration Feature SDK Example'.
동기식 예제
#include "KakaoGameLib.h" // friends API를 통해 가져온 친구 객체 KakaoGame::Data::KGTKakaoProfile kakaoProfile; // [TODO] 템플릿 Id 설정 std::wstring templateId = TEXT(""); // [TODO] 메시지 템플릿에 설정한 인자 설정 std::map<std::wstring, std::wstring> arguments; arguments.insert(std::pair<std::wstring, std::wstring>(TEXT("${nickname}"), kakaoProfile.nickname)); arguments.insert(std::pair<std::wstring, std::wstring>(TEXT("rog_link"), TEXT("test=100&hello=20111"))); arguments.insert(std::pair<std::wstring, std::wstring>(TEXT("bruce2"), kTEXT("test=100&hello=20111"))); KakaoGame::Data::KGTResult result; KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 카카오톡 게임 메시지 보내기 kakaotalkApi.sendGameMessage(kakaoProfile, templateId, arguments, result); if (result.isSuccess()) { // 카카오톡 채팅 메시지 보내기 성공 } else if (KakaoGame::Data::KGTResult::MessageSettingDisabled == result.code) { // 받은이가 메시지 수신 거부를 설정한 경우 } else if (KakaoGame::Data::KGTResult::ExceedDailyUsage == result.code) { // 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생 } else if (KakaoGame::Data::KGTResult::ExceedMonthlyUsage == result.code) { // 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생 } else { // 카카오톡 채팅 메시지 보내기 실패 }
비동기식 예제
#include "KakaoGameLib.h" // friends API를 통해 가져온 친구 객체 KakaoGame::Data::KGTKakaoProfile kakaoProfile; // [TODO] 템플릿 Id 설정 std::wstring templateId = TEXT(""); // [TODO] 메시지 템플릿에 설정한 인자 설정 std::map<std::wstring, std::wstring> arguments; arguments.insert(std::pair<std::wstring, std::wstring>(TEXT("${nickname}"), kakaoProfile.nickname)); arguments.insert(std::pair<std::wstring, std::wstring>(TEXT("rog_link"), TEXT("test=100&hello=20111"))); arguments.insert(std::pair<std::wstring, std::wstring>(TEXT("bruce2"), kTEXT("test=100&hello=20111"))); KakaoGame::API::KGTKakaoTalk kakaotalkApi; // 카카오톡 게임 메시지 보내기 kakaotalkApi.sendGameMessage(kakaoProfile, templateId, arguments, [this](KakaoGame::Data::KGTResult result) { if (result.isSuccess()) { // 카카오톡 채팅 메시지 보내기 성공 } else if (KakaoGame::Data::KGTResult::MessageSettingDisabled == result.code) { // 받은이가 메시지 수신 거부를 설정한 경우 } else if (KakaoGame::Data::KGTResult::ExceedDailyUsage == result.code) { // 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생 } else if (KakaoGame::Data::KGTResult::ExceedMonthlyUsage == result.code) { // 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생 } else { // 카카오톡 채팅 메시지 보내기 실패 } });
카카오톡 채널 추가하기
매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Kakao Integration Feature SDK Example'.
동기식 예제
#include "KakaoGameLib.h" // [TODO] 채널 Id 설정 int channelId = 0; KakaoGame::Data::KGTResult result; KakaoGame::API::KGTKakaoTalk kakaotalkApi; kakaotalkApi.addChannel(channelId, result); if (result.isSuccess()) { // 채널 추가 성공 } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 채널 추가 실패 }
비동기식 예제
#include "KakaoGameLib.h" // [TODO] 채널 Id 설정 int channelId = 0; KakaoGame::API::KGTKakaoTalk kakaotalkApi; kakaotalkApi.addChannel(channelId, [this](KakaoGame::Data::KGTResult result, int32_t totalReceiversCount, int32_t joinersCount) { if (result.isSuccess()) { // 채널 추가 성공 } else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code) { // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우. } else { // 채널 추가 실패 } });
댓글 추가