메타 데이터의 끝으로 건너뛰기
메타 데이터의 시작으로 이동

You are viewing an old version of this content. View the current version.

현재와 비교 View Version History

« 이전 버전 5 다음 »


Initialization and Status Change Event Processing


SDK Initialization

매크로 처리 오류 '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));

/**
 * For using a single app
 */
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
);

/**
 * For using an app group
 */
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'.

Synchronous Example

#include "KakaoGameLib.h"

KakaoGame::Data::KGTResult result;
KakaoGame::API::KGTApplication applicationApi;

applicationApi.start(GetSafeHwnd(), result);

if (result.isSuccess())
{
	// If the start is successful
	
	// Check if auto-login is enabled
	KakaoGame::API::KGTPlayer playerApi;
	boolean isLoggedIn = playerApi.isLoggedIn();
	
	if (isLoggedIn)
	{
		// The current Player ID issued by the platform
		KakaoGame::Data::KGTPlayer player;
		playerApi.getCurrentPlayer(player);
		
		std::wstring playerId = player.playerId; // The current Player ID issued by the platform
		std::wstring accessToken = playerApi.getAccessToken(); // Platform access token (AccessToken)
		
		// [TODO] Move to the game screen
	}
	else
	{
		// [TODO] If auto-login is not enabled, move to the login screen
	}
}
else
{
	// If the start fails - If initialization fails, you should either retry the start or close the app.
	if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code
		|| KakaoGame::Data::KGTResultCode::ServerTimeout == result.code
		|| KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code)
	{
		// [TODO] If a network error occurs, notify the user of the network issue and the failure to start, then retry.
	} else
	{
		// [TODO] If other errors occur, notify the user of the error and request a retry of the start. - If the issue persists, check the error code and logs to determine the cause.
	}
}

Asynchronous Example

#include "KakaoGameLib.h"

KakaoGame::API::KGTApplication applicationApi;

applicationApi.start(GetSafeHwnd(), [this](KakaoGame::Data::KGTResult result) {
	if (result.isSuccess())
	{
		// If the start is successful
		
		// Check if auto-login is enabled
		KakaoGame::API::KGTPlayer playerApi;
		bool isLoggedIn = playerApi.isLoggedIn();
		
		if (isLoggedIn)
		{
			// Get the current Player ID issued by the platform
			KakaoGame::Data::KGTPlayer player;
			playerApi.getCurrentPlayer(player);
			
			std::wstring playerId = player.playerId; // The current Player ID issued by the platform
			std::wstring accessToken = playerApi.getAccessToken(); // Platform access token (AccessToken)
			
			// [TODO] Move to the game screen
		}
		else
		{
			// [TODO] If auto-login is not enabled, move to the login screen
		}
	}
	else
	{
		// If the start fails - Since initialization failed, retry the start or close the app.
		if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code
			|| KakaoGame::Data::KGTResultCode::ServerTimeout == result.code
			|| KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code)
		{
			// [TODO] If a network error occurs, inform the user that the start failed due to network issues and retry
		}
		else
		{
			// [TODO] For other errors, notify the user of the error and request a retry of the start. - If the issue persists, check the error code and logs to identify the cause.
		}
	}
});

Login


매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Login SDK Example'.

Logging In Without Using the Default Login UI

매크로 처리 오류 'excerpt-include' : No link could be created for 'EN_Login SDK Example'.

Synchronous Example

#include "KakaoGameLib.h"

// Setting the idpCode for login
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 login and platform login successful
	KakaoGame::Data::KGTPlayer player;
	KakaoGame::API::KGTPlayer playerApi;
	
	playerApi.getCurrentPlayer(player);
	
	std::wstring playerId = player.playerId; // Current Player ID issued by the platform
	std::wstring accessToken = playerApi.getAccessToken(); // Platform access token (AccessToken)
	
	// [TODO] Since login is successful, proceed to the game screen.
}
else
{
	// IDP login or platform login failed
	// [TODO] In case of login failure, notify the user and retry.
	if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code
		|| KakaoGame::Data::KGTResultCode::ServerTimeout == result.code
		|| KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code)
	{
		// [TODO] If a network error occurs, notify the user of the network issue and retry.
	}
	else if (KakaoGame::Data::KGTResultCode::Forbidden == result.code)
	{
		// [TODO] During the CBT period, authentication may not be possible for users who are not permitted. Notify the user accordingly.
	}
	else if (KakaoGame::Data::KGTResultCode::UserCanceled == result.code)
	{
		// [TODO] If the user cancels during the login process, maintain the login screen.
	}
	else
	{
		// [TODO] In case of other errors, notify the user and retry the login process. - Check error codes and logs to identify the cause.
	}
}

Asynchronous Example

#include "KakaoGameLib.h"

// Set the idpCode you want to log in with
KakaoGame::Data::KGTIdpCode idpCode = KakaoGame::Data::KGTIdpCode::Kakao;

KakaoGame::API::KGTPlayer playerApi;

playerApi.login(GetSafeHwnd(), idpCode, [this](KakaoGame::Data::KGTResult result) {
	if (result.isSuccess())
	{
		// Successfully logged in with IDP and platform
		KakaoGame::Data::KGTPlayer player;
		KakaoGame::API::KGTPlayer playerApi;
		
		playerApi.getCurrentPlayer(player);
		
		std::wstring playerId = player.playerId; // The current Player ID issued by the platform
		std::wstring accessToken = playerApi.getAccessToken(); // Platform access token (AccessToken)
		
		// [TODO] Move to the game screen after successful login.
	}
	else
	{
		// IDP login or platform login failed
		// [TODO] After notifying the user of the login failure, retry the login.
		if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code
			|| KakaoGame::Data::KGTResultCode::ServerTimeout == result.code
			|| KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code)
		{
			// [TODO] In case of a network error, notify the user of the network issue that caused the start to fail, and retry.
		}
		else if (KakaoGame::Data::KGTResultCode::Forbidden == result.code)
		{
			// [TODO] If the user is not allowed during the CBT period, authentication may not be possible. Provide a notification message to the user.
		}
		else if (KakaoGame::Data::KGTResultCode::UserCanceled == result.code)
		{
			// [TODO] If the user cancels during the login process, keep the login screen.
		}
		else
		{
			// [TODO] For other errors, provide an error notification and prompt the user to retry login. - After checking the error code and logs, identify the cause.
		}
	}
});

Logging in Using a Square Token

Synchronous Example

#include "KakaoGameLib.h"

// User ID requesting login
std::wstring playerId;

// Token received from Square
std::wstring squareToken;

KakaoGame::Data::KGTResult result;
KakaoGame::API::KGTPlayer playerApi;

playerApi.loginIdpWithSquareToken(GetSafeHwnd(), playerId, squareToken, result);

if (result.isSuccess())
{
	// Successful IDP and platform login
	KakaoGame::Data::KGTPlayer player;
	KakaoGame::API::KGTPlayer playerApi;
	
	playerApi.getCurrentPlayer(player);
	
	std::wstring playerId = player.playerId; // Current Player ID issued by the platform
	std::wstring accessToken = playerApi.getAccessToken(); // Platform access token (AccessToken)
	
	// [TODO] Move to the game screen as the login is successful.
}
else
{
	// IDP or platform login failed
	// [TODO] If login fails, notify the user and request a retry.
	if (KakaoGame::Data::KGTResultCode::NetworkFailure == result.code
		|| KakaoGame::Data::KGTResultCode::ServerTimeout == result.code
		|| KakaoGame::Data::KGTResultCode::ConnectionFailed == result.code)
	{
		// [TODO] If a network error occurs, inform the user of the network issue and request a retry.
	}
	else
	{
		// [TODO] If other errors occur, inform the user and request a retry. - Check the error code and logs to identify the cause if the problem persists.
	}
}

Asynchronous Example

#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'.

Synchronous Example

#include "KakaoGameLib.h"

KakaoGame::Data::KGTResult result;
KakaoGame::API::KGTPlayer playerApi;

playerApi.logout(GetSafeHwnd(), false, result);

if (result.isSuccess())
{
	// 로그아웃 성공
	
	// [TODO] 시작 화면으로 돌아가기
}
else
{
	// 로그아웃 실패
}

Asynchronous Example

#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를 사용하지 않는 탈퇴하는 예제입니다.

Synchronous Example

#include "KakaoGameLib.h"

KakaoGame::Data::KGTResult result;
KakaoGame::API::KGTPlayer playerApi;

playerApi.unregister(GetSafeHwnd(), false, result);

if (result.isSuccess())
{
	// 탈퇴 성공
	
	// [TODO] 시작 화면으로 돌아가기
}
else
{
	// 탈퇴 실패
}

Asynchronous Example

#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'.

Synchronous 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
	{
		// 기타 에러 발생
	}
}

Asynchronous Example

#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'.

Synchronous 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
{
	// 카카오톡 게임 메시지 수신 여부 설정 실패
}

Asynchronous Example

#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'.

Synchronous 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
{
	// 카카오톡 프로필 조회 실패
}

Asynchronous Example

#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'.

Synchronous 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
{
	// 카카오톡 프로필 조회 실패
}

Asynchronous Example

#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'.

Synchronous 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
{
	// 카카오톡 채팅 메시지 보내기 실패
}

Asynchronous 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::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'.

Synchronous 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
{
	// 채널 추가 실패
}

Asynchronous Example

#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
	{
		// 채널 추가 실패
	}
});
  • 레이블 없음

0 댓글

로그인 상태가 아닙니다. 변경하는 경우 익명으로 표기됩니다. 이미 계정이 있다면 로그인을 원하실 수 있습니다.