71.1 Reach Kakao SDK Example
71.1. Reach Kakao SDK Example
71.1.1. Request authentication
This is an example of requesting authentication.
If you choose a way to authenticate at a certain point, you should implement it as shown below.
In accordance with the Privacy Enhancement Policy, the CI values provided by the client SDK have been removed.
For games that require purchase restrictions with CI values, call this API to check the information and get CI through the server API.
Unity
// Request authentication
KGKakaoProfile.RequestAgeVerification((result) =>
{
if (result.isSuccess)
{
// If you limit your purchase with a CI value, use the server API to obtain the CI value.
}
else
{
// Fail
if (result.code == KGResultCode.UnderAgePlayer)
{
// The user is underage. Show the message, call logout API and quit your game.
}
else
{
// If personal authentication is mandatory, call this API again.
}
}
}); |
Android
// Request authentication
KGKakaoProfile.requestAgeVerification(activity, new KGResultCallback<Void>() {
@Override
public void onResult(KGResult<Void> result) {
if (result.isSuccess()) {
// If you limit your purchase with a CI value, use the server API to obtain the CI value.
} else {
// Fail
if (result.getCode() == KGResult.KGResultCode.UDER_AGE_PLAYER) {
// The user is underage. Show the message, call logout API and quit your game.
} else {
// If personal authentication is mandatory, call this API again.
}
}
}
}); |
iOS
// Request authentication
[KGKakaoProfile requestAgeVerificationWithCompletionHandler:^(NSError *error) {
if (IS_SUCCESS(error))
{
// If you limit your purchase with a CI value, use the server API to obtain the CI value.
}
else
{
// Fail
if (error.code == KGErrorUnderAgePlayer)
{
// The user is underage. Show the message, call logout API and quit your game.
}
else
{
// If personal authentication is mandatory, call this API again.
}
}
}];
|
Unreal
#include "KakaoGame.h"
// Request authentication
FKGKakaoProfile::RequestAgeVerification(FKGResultDelegate::CreateLambda([=](FKGResult result) {
if (result.IsSuccess())
{
// If you limit your purchase with a CI value, use the server API to obtain the CI value.
}
else
{
if (result.GetCode() == FKGResultCode::UnderAgePlayer)
{
// The user is underage. Show the message, call logout API and quit your game.
}
else
{
// If personal authentication is mandatory, call this API again.
}
}
})); |
71.1.2. Request In-Game Service Status
This API is Deprecated.
This is an example of requesting an in-game service status.
You can take the badge exposure information of WebView before calling InGame WebView and apply it to the UI.
Unity
// Request In-Game Service Status
KGKakaoInReachGameService.RequestIngameStatus((result, ingameStatus) =>
{
if (result.isSuccess)
{
// Before you launch In-game Webview, check whether you want to expose the new badge.
bool showNewBadge = ingameStatus.withGame.showNewBadge;
// This is the time when the new badge is activated. You can decide whether to be exposed according to your plan.
long lastModifiedAt = ingameStatus.withGame.lastModifiedAt;
// The URL of the Webview.
string homeUrl = ingameStatus.withGame.homeUrl();
}
else
{
// Fail...
}
}); |
Android
// Request In-Game Service Status
KGKakaoInReachGameService.requestIngameStatus(new KGResultCallback<KGIngameStatus>() {
@Override
public void onResult(KGResult<KGIngameStatus> result) {
if (result.isSuccess()) {
KGIngameStatus status = result.getContent();
// Before you launch In-game Webview, check whether you want to expose the new badge.
boolean showNewBadge = status.getWithGame().getShowNewBadge();
// This is the time when the new badge is activated. You can decide whether to be exposed according to your plan.
long lastModifiedAt = status.getWithGame().getLastModifiedAt();
// The URL of the Webview.
string homeUrl = status.getWithGame().getHomeUrl();
} else {
// Fail...
}
}
}); |
71.1.3. Exposure In-Game WebView
This API is Deprecated.
This is an example of exposing an in-game webview that exposes recommanded board games.
Unity
// Show In-game Webview
KGKakaoInReachGameService.ShowIngameWebView((result, integerResult) =>
{
if (result.isSuccess)
{
// Success
}
else
{
// Fail
}
}); |
Android
// Show In-game Webview
KGKakaoInReachGameService.showIngameWebView(new KGResultCallback<Integer>() {
@Override
public void onResult(KGResult<Integer> result) {
if (result.isSuccess()) {
// Success
} else {
// Fail
}
}
}); |
You can design the In-game Webview button to match the concept of your game and expose to the desired location.
The design of the button should follow the design guidelines below. If you do not need a design that matches the game's concept, download it from InGameWebViewButtonDesign.zip.
71.1.3.1. Ingame Webview Button Design Guide
Ingame Webview Button
New Badge
Ex)