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

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

현재와 비교 View Version History

« 이전 버전 8 다음 »


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, 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.
		}
	}
});

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 the failure to start, then 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] 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"

// 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] Since login is successful, proceed to the game screen.
	}
	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] If a network error occurs, notify the user of the network issue and the failure to start, then 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, maintain the login screen.
		}
		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.
		}
	}
});

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] Since login is successful, proceed to the game screen.
}
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, 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"

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

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

KakaoGame::API::KGTPlayer playerApi;

playerApi.login(GetSafeHwnd(), playerId, squareToken, [this](KakaoGame::Data::KGTResult 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; // The current Player's 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] 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, 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.
		}
	}
});

Logout


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

Logging Out Without Using the Default Logout 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())
{
	// Logout successful
	
	// [TODO] Return to the start screen
}
else
{
	// Logout failed
}

Asynchronous Example

#include "KakaoGameLib.h"

KakaoGame::API::KGTPlayer playerApi;

playerApi.logout(GetSafeHwnd(), false, [this](KakaoGame::Data::KGTResult result) {
	if (result.isSuccess())
	{
		// Logout successful
		
		// [TODO] Return to the start screen
	}
	else
	{
		// Logout failed
	}
});

Unregistration


  • 탈퇴 UI를 개발사에서 직접 구현하고 싶을 경우(탈퇴 UI를 사용하고 싶지 않은 경우)를 위해서, 탈퇴 API가 제공됩니다.

Unregistering Without Using the Default Unregistration UI

기본 탈퇴 UI를 사용하지 않는 탈퇴하는 예제입니다.

Synchronous Example

#include "KakaoGameLib.h"

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

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

if (result.isSuccess())
{
	// Unregistration successful
	
	// [TODO] Return to the start screen
}
else
{
	// Unregistration failed
}

Asynchronous Example

#include "KakaoGameLib.h"

KakaoGame::API::KGTPlayer playerApi;

playerApi.unregister(GetSafeHwnd(), false, [this](KakaoGame::Data::KGTResult result) {
	if (result.isSuccess())
	{
		// Unregistration successful
		
		// [TODO] Return to the start screen
	}
	else
	{
		// Unregistration failed
	}
});

Account Linking


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

Linking Accounts Without Using the Default Account Linking UI

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

Synchronous Example

#include "KakaoGameLib.h"

// Set the idpCode to connect to
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 connection successful
	// Player ID is not changed.
}
else
{
	// IDP connection failed
	if (KakaoGame::Data::KGTResultCode::InvalidParameter == result.code)
	{
		// An invalid parameter was passed
	}
	else if (KakaoGame::Data::KGTResultCode::NotAuthorized == result.code)
	{
		// The user is not currently logged in
	}
	else if (KakaoGame::Data::KGTResultCode::InvalidState == result.code)
	{
		// The current authenticated IDP is not an IDP that can be linked to the account
	}
	else if (KakaoGame::Data::KGTResultCode::AlreadyUsedIDPAccount == result.code)
	{
		// The account is already linked to another IDP
	}
	else
	{
		// Other errors occurred
	}
}

Asynchronous Example

#include "KakaoGameLib.h"

// Set the idpCode to connect to
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 connection successful
		// Player ID is not changed.
	}
	else
	{
		// IDP connection failed
		if (KakaoGame::Data::KGTResultCode::InvalidParameter == result.code)
		{
			// An invalid parameter was passed
		}
		else if (KakaoGame::Data::KGTResultCode::NotAuthorized == result.code)
		{
			// The user is not currently logged in
		}
		else if (KakaoGame::Data::KGTResultCode::InvalidState == result.code)
		{
			// The current authenticated IDP is not an IDP that can be linked to the account
		}
		else if (KakaoGame::Data::KGTResultCode::AlreadyUsedIDPAccount == result.code)
		{
			// The account is already linked to another IDP
		}
		else
		{
			// Other errors occurred
		}
	}
});

Profile


Retrieve My Information

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

Retrieve My IDP Information

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

System Information


Retrieve Language Code

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

Retrieve Language Tag

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

Retrieve Country Code

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

Retrieve IP-based Country Code

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

Retrieve Device ID

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

Retrieve Device Model

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

Retrieve OS Name

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

Retrieve Network Connection Status

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

#include "KakaoGameLib.h"

KakaoGame::API::KGTSystem systemApi;

boolean networkConnected = systemApi.isNetworkConnected();

Retrieve Connected Network Type

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

Get the Set Game Language Code

Returns the set game language code.

If no language code is set, it retrieves the language setting information configured on the device, and the language code is returned according to the ISO 639-1 standard.

#include "KakaoGameLib.h"

KakaoGame::API::KGTSystem systemApi;

std::wstring gameLanguageCode = systemApi.getGameLanguageCode();

Set the Game Language Code

Configures the game to use the language synchronized with the platform.

The following language codes are supported:

(Can be set before calling the Start API)

  • device: Device setting value. Can be used to revert to the device's setting value. (default)

  • en: English

  • ko: Korean

  • ja: Japanese

  • zh_hant: Chinese (Traditional)

  • zh_hans: Chinese (Simplified)

#include "KakaoGameLib.h"

// KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::en; // English
// KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::ko; // Korean
// KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::ja; // Japanese
// KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::zh_hant; // Chinese(Traditional)
// KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::zh_hans; // Chinese (Simplified)
KakaoGame::Data::KGTLanguageCode languageCode = KakaoGame::Data::KGTLanguageCode::device; // Device setting value

KakaoGame::API::KGTSystem systemApi;

systemApi.setGameLanguageCode(languageCode);

Kakao Integration Feature


Setting Up KakaoTalk Game Message Reception

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

// Show the view to set whether to receive KakaoTalk game messages
kakaotalkApi.showSetting(GetSafeHwnd(), result, isAlloweMe);

if (result.isSuccess())
{
	// Successfully set whether to receive KakaoTalk game messages
	isAlloweMe; // Indicates whether receiving messages is allowed
}
else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
{
	// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
}
else
{
	// Failed to set whether to receive KakaoTalk game messages
}

Asynchronous Example

#include "KakaoGameLib.h"

KakaoGame::API::KGTKakaoTalk kakaotalkApi;

// Show the view to set whether to receive KakaoTalk game messages
kakaotalkApi.showSetting(GetSafeHwnd(), [this](KakaoGame::Data::KGTResult result, bool isAlloweMe) {
	if (result.isSuccess())
	{
		// Successfully set whether to receive KakaoTalk game messages
		isAlloweMe; // Indicates whether receiving messages is allowed
	}
	else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
	{
		// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
	}
	else
	{
		// Failed to set whether to receive KakaoTalk game messages
	}
});

Retrieve KakaoTalk Profile

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

// Retrieve KakaoTalk profile
kakaotalkApi.talkProfile(result, profile);

if (result.isSuccess())
{
	// Successfully retrieved KakaoTalk profile
	profile; // KakaoTalk profile information of the logged-in user
}
else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
{
	// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
}
else
{
	// Failed to retrieve KakaoTalk profile
}

Asynchronous Example

#include "KakaoGameLib.h"

KakaoGame::API::KGTKakaoTalk kakaotalkApi;

// Retrieve KakaoTalk profile
kakaotalkApi.talkProfile([this](KakaoGame::Data::KGTResult result, KakaoGame::Data::KGTKakaoTalkProfile profile) {
	if (result.isSuccess())
	{
		// Successfully retrieved KakaoTalk profile
		profile; // KakaoTalk profile information of the logged-in user
	}
	else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
	{
		// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
	}
	else
	{
		// Failed to retrieve KakaoTalk profile
	}
});

Retrieve KakaoTalk Game Friend List

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

// Retrieve the list of game friends
kakaotalkApi.friends(result, players);

if (result.isSuccess())
{
	// Successfully retrieved KakaoTalk game friends list.
	// Game friends list
	for each (auto player in players)
	{
	}
}
else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
{
	// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
}
else
{
	// Failed to retrieve KakaoTalk profile
}

Asynchronous Example

#include "KakaoGameLib.h"

KakaoGame::API::KGTKakaoTalk kakaotalkApi;

// Retrieve the list of game friends
kakaotalkApi.friends([this](KakaoGame::Data::KGTResult result, std::vector<KakaoGame::Data::KGTPlayer> players) {
	if (result.isSuccess())
	{
		// Successfully retrieved KakaoTalk game friends list.
		// Game friends list
		for each (auto player in players)
		{
		}
	}
	else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
	{
		// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
	}
	else
	{
		// Failed to retrieve KakaoTalk game friends list
	}
});

Sending KakaoTalk Game Messages

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

Synchronous Example

#include "KakaoGameLib.h"

// Friend object retrieved via the friends API
KakaoGame::Data::KGTKakaoProfile kakaoProfile;

// [TODO] Set the template Id
std::wstring templateId = TEXT("");

// [TODO] Set the parameters for the message template
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;

// Send a KakaoTalk game message
kakaotalkApi.sendGameMessage(kakaoProfile, templateId, arguments, result);

if (result.isSuccess())
{
	// Successfully sent KakaoTalk chat message
}
else if (KakaoGame::Data::KGTResult::MessageSettingDisabled == result.code)
{
	// The recipient has set message reception to "Do Not Disturb"
}
else if (KakaoGame::Data::KGTResult::ExceedDailyUsage == result.code)
{
	// Occurs when the daily quota for sending messages from a specific app (regardless of recipient) is exceeded
}
else if (KakaoGame::Data::KGTResult::ExceedMonthlyUsage == result.code)
{
	// Occurs when the monthly quota for sending messages to a specific person from a specific app is exceeded
}
else
{
	// Failed to send KakaoTalk chat message
}

Asynchronous Example

#include "KakaoGameLib.h"

// Friend object retrieved via the friends API
KakaoGame::Data::KGTKakaoProfile kakaoProfile;

// [TODO] Set the template Id
std::wstring templateId = TEXT("");

// [TODO] Set the parameters for the message template
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;

// Send a KakaoTalk game message
kakaotalkApi.sendGameMessage(kakaoProfile, templateId, arguments, [this](KakaoGame::Data::KGTResult result) {
	if (result.isSuccess())
	{
		// Successfully sent KakaoTalk chat message
	}
	else if (KakaoGame::Data::KGTResult::MessageSettingDisabled == result.code)
	{
		// The recipient has set message reception to "Do Not Disturb"
	}
	else if (KakaoGame::Data::KGTResult::ExceedDailyUsage == result.code)
	{
		// Occurs when the daily quota for sending messages from a specific app (regardless of recipient) is exceeded
	}
	else if (KakaoGame::Data::KGTResult::ExceedMonthlyUsage == result.code)
	{
		// Occurs when the monthly quota for sending messages to a specific person from a specific app is exceeded
	}
	else
	{
		// Failed to send KakaoTalk chat message
	}
});

Adding a KakaoTalk Channel

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

Synchronous Example

#include "KakaoGameLib.h"

// [TODO] Set the channel Id
int channelId = 0;

KakaoGame::Data::KGTResult result;
KakaoGame::API::KGTKakaoTalk kakaotalkApi;

kakaotalkApi.addChannel(channelId, result);

if (result.isSuccess())
{
	// Successfully added the channel
}
else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
{
	// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
}
else
{
	// Failed to add the channel
}

Asynchronous Example

#include "KakaoGameLib.h"

// [TODO] Set the channel 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())
	{
		// Successfully added the channel
	}
	else if (KakaoGame::Data::KGTResult::NotKakaoTalkUser == result.code)
	{
		// The logged-in user is not a 'KakaoTalk' user. This occurs when the user is not a KakaoTalk user, such as an account that is only registered with Kakao Story.
	}
	else
	{
		// Failed to add the channel
	}
});
  • 레이블 없음

0 댓글

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