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

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

현재와 비교 View Version History

« 이전 버전 15 현재 »


초기화 및 상태변화 이벤트 처리


SDK 초기화

SDK에서 사용하는 앱 정보를 설정하고 초기화 하는 과정을 수행합니다.

게임 시작 시 다른 API보다 먼저 호출되어야 합니다.

import com.kakaogame.KGTApplication;
import com.kakaogame.KGTConfig;

/**
 * 단일 앱으로 사용하는 경우
 */
KGTConfig config = new KGTConfig();
config.setAppInfo(
	"1113970", // appID
	"5b23360a86e87ba790b39475a98579bd", // appSecret
	"1.0.0", // appVersion
	"googlePlay", // market
	KGTServerType.Live, // server type
	KGTLogLevel.Error // log level
);

KGTApplication.initSDK(this, config);

스타트 (Start) 하기

게임이 실행되면, 게임은 시작 함수를 호출하여 게임이 실행되었다는 정보를 카카오게임 SDK로 전달해야 합니다.

카카오게임 SDK의 시작 함수가 호출되면 플랫폼의 공지 사항, 업데이트 정보, 약관 동의 등의 UI 기능을 수행합니다.

만약 이전에 로그인한 사용자의 기록이 있다면 자동 로그인을 수행합니다. 이후 그 결과를 메서드 호출 시 게임에서 입력한 콜백 함수를 통해 전달합니다.

따라서, 게임은 그 결과를 활용하여 사용자의 인증을 먼저 수행해야 할지, 혹은 이전에 하던 게임을 재개해야 할 지에 대한 결정을 할 수 있습니다.

import com.kakaogame.KGTApplication;
import com.kakaogame.KGTIdpProfile;
import com.kakaogame.KGTPlayer;
import com.kakaogame.KGTResult;

KGTApplication.start(activity, null, result -> {
	if (result.isSuccess()) {
		// 스타트가 성공 한 경우

		// 자동로그인 여부
		boolean isLoggedIn = KGTPlayer.isLoggedIn();

		if (isLoggedIn) {
			// 플랫폼에서 발급한 현재 Player의 ID
			String playerId = KGTPlayer.getCurrentPlayer().getPlayerId();

			// 플랫폼 액세스 토큰(ZAT)
			String accessToken = KGTPlayer.getCurrentPlayer().getAccessToken();

			// 현재 IDP 인증 정보를 가져옴
			KGTIdpProfile idpProfile = KGTPlayer.getCurrentPlayer().getIdpProfile();

			// [TODO] 게임 화면으로 이동 합니다.
		} else {
			// [TODO] 자동로그인이 안 된 경우 로그인 화면으로 이동 합니다.
		}
	} else {
		// 스타트가 실패 한 경우 - 초기화가 실패한 경우 이므로 스타트를 재시도 하거나 앱을 종료 하여야 합니다.
		int resultCode = result.getCode();

		if (resultCode == KGTResult.KGTResultCode.NETWORK_FAILURE 
			|| resultCode == KGTResult.KGTResultCode.SERVER_TIMEOUT
			|| resultCode == KGTResult.KGTResultCode.SERVER_CONNECTION_FAILED) {
			// [TODO] 네트워크 에러가 발생한 경우에는 유저에게 네트워크 이슈로 스타트에 실패했음을 알리고 재시도
		} else {
			// [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 스타트 재시도 요청 하여야 합니다. - 문제가 반복해서 발생하는 경우 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
		}
	}
});

Pause 하기

모바일 환경에서 게임이 백그라운드로 내려가는 시점이 오면, 게임은 Pause API를 호출하여 게임이 비 활성화되었다는 정보를 카카오게임 SDK로 전달해야 합니다.

카카오게임 SDK는 Pause API가 호출되면 배터리 소모를 막기 위해 연결된 세션을 끊고, 주기적으로 발송되던 Heartbeat을 중단합니다.

import com.kakaogame.KGTApplication;
import com.kakaogame.KGTResult;
 
KGTApplication.pause(activity, result -> {
	//
});

Resume 하기

모바일 환경에서 게임이 백그라운드로 내려갔다가 다시 활성화되는 시점이 오면, 게임은 Resume API를 호출하여 게임이 활성화되었다는 정보를 카카오게임 SDK로 전달해야 합니다.

카카오게임 SDK는 Resume 메서드가 호출되면 인증의 만료 여부를 확인하고 그 여부에 따라 세션을 복구한 후 그 결과를 메서드 호출시 게임에서 입력한 콜백 함수를 통해 전달합니다.

게임은 그 결과를 활용하여 사용자의 인증을 다시 수행해야 할지, 혹은 이전에 하던 게임을 재개해야 할 지에 대한 결정을 할 수 있습니다.

import com.kakaogame.KGTApplication;
import com.kakaogame.KGTResult;
 
KGTApplication.resume(activity, result -> {
	if (result.isSuccess()) {
		// [TODO] resume이 성공 한 경우 게임 화면을 재개합니다.
	} else {
		// [TODO] resume이 실패 한 경우 인증 실패 면 로그인 화면으로, 그외의 경우는 에러 팝업을 띄우고 재시도 여부를 확인합니다.
		if (result.getCode() == KGTResult.KGTResultCode.AUTH_FAILURE 
			|| result.getCode() == KGTResult.KGTResultCode.IDP_AUTH_FAILURE) {
			// [TODO] 인증 실패의 경우 시작 화면으로 이동해서 다시 신규 로그인 flow를 수행합니다.
		} else {
			// [TODO] 나머지 에러가 발생한 경우 경우 에러 안내 후 resume 을 재시도 합니다. - 반복해서 문제가 발생하는 경우 앱을 종료하도록 합니다.
		}
	}
});

새로운 Intent 받기 설정 추가하기

Android SDK를 직접 사용하는 경우 필요한 설정입니다.

게임의 MainActivity 내부에 아래와 같이 콜백을 추가합니다.

이 설정을 추가하지 않으면 게임하기를 통한 게임의 유입경로 체크에 문제가 됩니다. 반드시 추가해주세요.

그리고 Unity 환경에서 직접 Android SDK를 연동하는 경우 아래 설정을 추가한 해당 MainActivity를 Unity 의 Assets/Plugins/Android/AndroidManifest.xml 파일에 main activity로 설정해 줍니다.

(카카오게임 Unity, Unreal SDK를 사용하는 경우 자동으로 설정하고 있어서 추가 설정이 필요하지 않습니다.)

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
     
    // 현재 액티비티에 새로운 intent 업데이트
    this.setIntent(intent);
}

로그인


  • 로그인 UI는 개발사에서 로그인 UI를 커스터마이징하여 적용 가능합니다.

  • 개발사에서 로그인 UI를 직접 구현하는 경우 참고사항

    • IDP별 로그인 API가 제공됩니다.

    • 개발사에서 로그인 화면에, 각 IDP별 로그인 버튼을 배치하고, 각 버튼을 클릭했을 경우, 각각의 IDP별 로그인 API를 호출하도록 구현해야 합니다.

    • 글로벌 원빌드를 제공할 경우, 국가에 따라서 IDP버튼의 노출을 처리해야 합니다. 예를 들어서, 한국의 경우에는 카카오 로그인을 제공하고, 그 외 국가에서는 페이스북 로그인을 제공하도록 구현해야 합니다.

    • 국가를 구분하기 위해서 KGTSystem클래스에 countryCode를 가져올 수 있는 API를 제공합니다.

  •  로그인이 성공한 이후에 설정창을 띄우면 회원번호에 PlayerID가 노출되도록 구현해야 합니다.

기본 로그인 UI를 사용하지 않는 로그인하기

기본 로그인 UI를 사용하지 않는 로그인하는 예제입니다.

국가별로 로그인 IDP가 다를 경우에는 국가를 얻어오는 API를 통해서, 분기 처리 하도록 합니다. 

  • 게스트 인증

게스트 로그인의 경우 알람 팝업을 직접 구현해야 합니다. 카카오 게임 검수 진행시, 필수 체크 항목입니다.

게스트 인증을 진행하기 전에, "게스트 로그인 시 게임 삭제 및 디바이스 변경을 하면 게임 데이터가 삭제될 수 있습니다."

알림 팝업을 노출하여, 사용자가 계속 게스트 인증을 진행할지, 취소를 할지를 선택할지를 선택할 수 있게 구현해야 합니다.

예)

게스트 로그인시에 앱 삭제나 기기 정보가 변경될 시에 기존 playerId로 이어서 게임 진행 할 수 없습니다.

기본 로그인을 사용하는 경우 SDK에서 띄워줍니다.

import com.kakaogame.KGTApplication;
import com.kakaogame.KGTIdpProfile;
import com.kakaogame.KGTPlayer;
import com.kakaogame.KGTResult;

// 로그인 하고자 하는 IdpCode 셋팅
KGTIdpProfile.KGTIdpCode code = KGTIdpCode.Kakao;

// 특정 idp로 로그인 하기
KGTPlayer.login(activity, code, result -> {
	if (result.isSuccess()) {
		// IDP 로그인과 플랫폼 로그인 성공

		// 플랫폼에서 발급한 현재 Player의 ID
		String playerId = KGTPlayer.getCurrentPlayer().getPlayerId();

		// 플랫폼 액세스 토큰
		String accessToken = KGTPlayer.getAccessToken();

		// 현재 IDP 인증 정보를 가져옴
		KGTIdpProfile idpProfile = KGTPlayer.getCurrentPlayer().getIdpProfile();

		// [TODO] 로그인 이 성공하였으므로 게임 화면으로 이동합니다.
	} else {
		// IDP 로그인 혹은 플랫폼 로그인 실패
		// [TODO] 로그인 실패 시 사용자 안내 후 재 시도 하도록 하여야 합니다.

		if (result.getCode() == KGTResult.KGTResultCode.NETWORK_FAILURE 
			|| result.getCode() == KGTResult.KGTResultCode.SERVER_TIMEOUT
			|| result.getCode() == KGTResult.KGTResultCode.SERVER_CONNECTION_FAILED) {
			// [TODO] 네트워크 에러가 발생한 경우에는 로그인 재시도 요청 하여야 합니다.
		} else if (result.getCode() == KGTResult.KGTResultCode.USER_CANCELED) {
			// [TODO] 사용자가 로그인 진행 중 취소한 상황이므로 로그인 화면을 유지 하여야 합니다.
		} else if (result.getCode() == KGTResult.KGTResultCode.BLOCKED_BY_POLICY) {
			// [TODO] 차단당한 국가 코드 또는 IP 대역에서 로그인을 시도하였습니다. 이에 대한 처리가 필요합니다.
		} else {
			// [TODO] 나머지 에러가 발생한 경우에는 에러 안내 후 로그인 재시도 요청 하여야 합니다. - 에러코드 및 로그 확인 후 원인 파악이 필요합니다.
		}
	}
});

로그아웃


  • 로그아웃 UI를 개발사에서 직접 구현해야 합니다.

    • 각 로그아웃UI에 대해서 로그아웃 API를 제공합니다.

기본 로그아웃 UI를 사용하지 않는 로그아웃하기

기본 로그아웃 UI를 사용하지 않는 로그아웃을 하는 예제입니다.

import com.kakaogame.KGTPlayer;
import com.kakaogame.KGTResult;

// 로그아웃 요청
KGTPlayer.logout(activity, false, result -> {
	if (result.isSuccess()) {
		// 로그아웃 성공

		// [TODO] 시작 화면으로 돌아가기
	} else {
		// 로그아웃 실패
	}
});

탈퇴


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

기본 탈퇴 UI를 사용하지 않는 탈퇴하기

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

import com.kakaogame.KGTPlayer;
import com.kakaogame.KGTResult;

// 탈퇴 요청
KGTPlayer.unregister(activity, false, result -> {
	if (result.isSuccess()) {
		// 탈퇴 성공

		// [TODO] 시작 화면으로 돌아가기
	} else {
		// 탈퇴 실패 
	}
});

계정 연결


  • 만약 계정 연결 UI를 개발사에서 직접 구현하고 싶을 경우(기본 계정 연결 UI를 사용하고 싶지 않은 경우)를 위해서, IDP별 계정 연결 API가 제공된다.

    • 개발사에서 계정 연결 화면에, 각 IDP별 계정 연결 버튼을 배치하고, 각 버튼을 클릭했을 경우, 각각의 IDP별 계정 연결 API를 호출하도록 구현해야 한다.

기본 계정 연결 UI를 사용하지 않는 계정 연결하기

기본 계정 연결 UI를 사용하지 않는 계정 연결 예제입니다.
계정 연결에 성공하면, 플레이어 아이디는 계속 동일하게 유지됩니다.

import com.kakaogame.KGTPlayer;
import com.kakaogame.KGTIdpProfile;
import com.kakaogame.KGTResult;

// 로그인 하고자 하는 IdpCode 셋팅
KGTIdpProfile.KGTIdpCode code = KGTIdpCode.Kakao;

// 특정 idp로 계정 연결 하기
KGTPlayer.connect(activity, code, result -> {
	if (result.isSuccess()) {
		// IDP 연결 성공
		// Player ID 는 변경되지 않습니다.
	} else {
		// IDP 연결 실패

		if (result.getCode() == KGTResult.KGTResultCode.INVALID_PARAMETER) {
			// 잘못된 인자가 전달 된 경우
			// 예) activity 가 null
		} else if (result.getCode() == KGTResult.KGTResultCode.NOT_AUTHORIZED) {
			// 현재 인증이 안되어 있는 경우
		} else if (result.getCode() == KGTResult.KGTResultCode.INVALID_STATE) {
			// 현재 인증 된 IDP 가 기기 인증이 아닌 경우
		} else if (result.getCode() == KGTResult.KGTResultCode.ALREADY_USED_IDP_ACCOUNT) {
			// 이미 인증되어 있는 계정인 경우
		} else {
			// 기타 에러 발생
		}
	}
});

프로필


내 정보 조회하기

내 정보를 조회하는 예제입니다.

import com.kakaogame.KGTPlayer;

KGTPlayer localPlayer = KGTPlayer.getCurrentPlayer();

내 IDP 정보 조회하기

내 IDP 프로필 정보를 조회하는 예제입니다.
카카오 IDP의 GroupUserToken 정보를 사용하기 위해서는 앱 그룹 설정을 위한 별도 문의가 필요합니다.

import com.kakaogame.KGTPlayer;
import com.kakaogame.KGTIdpProfile;

KGTIdpProfile idpProfile = KGTPlayer.getCurrentPlayer().getIdpProfile();

시스템 정보


언어 코드 가져오기

기기에 설정되어 있는 언어 설정 정보를 가져오며, 언어 코드는 ISO 639-1 표준에 따른 값을 반환한다.

import com.kakaogame.KGTSystem;

String languageCode = KGTSystem.getLanguageCode();

언어 태그 가져오기

import com.kakaogame.KGTSystem;

String languageCode = KGTSystem.getLanguageTag();

국가 코드 가져오기

SDK에서는 최초 GeoIP 기준으로 국가코드 수집한다. 국가 코드는 ISO 3166-1 alpha-2 표준을 따르며 국가 정보가 없을 경우에는 "zz" 를 반환한다.
국가 코드는 최초 앱 실행 시의 판단한 국가 코드를 유지하지만, 로그인한 유저의 국가 코드 정보가 다른 경우 유저의 국가 코드 정보를 따른다.

import com.kakaogame.KGTSystem;

String countryCode = KGTSystem.getCountryCode();

IP 기반 국가 코드 가져오기

기기가 현재 접속한 네트워크의 IP기반으로 한 countryCode 값을 리턴한다.

import com.kakaogame.KGTSystem;

String countryCode = KGTSystem.getGeoCountryCode();

기기 아이디 가져오기

기기 아이디는 해당 기기를 구분할 수 있는 값을 반환하며 기기 초기화 시 변경된다.

import com.kakaogame.KGTSystem;

String deviceId = KGTSystem.getDeviceId();

기기 모델 가져오기

현재 기기의 모델 정보를 반환한다.

import com.kakaogame.KGTSystem;

String deviceModel = KGTSystem.getDeviceModel();

OS 이름 가져오기

현재 기기의 OS 이름(android/ios)을 반환 한다.

import com.kakaogame.KGTSystem;

String osName = KGTSystem.getOSName();

네트워크 연결 여부 가져오기

현재 기기가 외부 네트워크에 연결 되어 있는지 여부를 반환한다.

import com.kakaogame.KGTSystem;

boolean networkConnected = KGTSystem.isNetworkConnected();

연결된 네트워크 타입 가져오기

현재 기기가 외부 네트워크에 연결 되어 있는 방식(wifi/cellular/unknown)을 가져온다.

import com.kakaogame.KGTSystem;

String networkType = KGTSystem.getNetworkType();

카카오 연동 기능


카카오톡 게임 메시지 수신 여부 설정하기

자신의 카카오톡 게임 메시지 수신 여부를 설정하는 예제입니다.

import com.kakaogame.KGTKakaoTalk;

// 카카오톡 게임 메시지 수신 여부 설정 뷰 띄우기
KGTKakaoTalk.showSetting(activity, result -> {
	if (result.isSuccess()) {
		// 카카오톡 게임 메시지 수신 여부 설정 성공
		boolean allowMessage = result.getContent(); // 설정된 메시지 수신 허용 여부
	} else if (result.getCode() == KGTResult.KGTResultCode.NOT_KAKAOTALK_USER) {
		// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
		// 카카오톡 게임 메시지 수신 여부 설정 실패
	}
});

카카오톡 프로필 조회하기

자신의 카카오톡 프로필을 조회하는 예제입니다.

import com.kakaogame.KGTKakaoTalk;
import com.kakaogame.KGTKakaoTalkProfile;

// 카카오톡 프로필 조회하기
KGTKakaoTalk.talkProfile(result -> {
	if (result.isSuccess()) {
		// 카카오톡 프로필 조회 성공
		talkProfile = result.getContent(); // 로그인한 유저의 카카오톡 프로필 정보
	} else if (result.getCode() == KGTResult.KGTResultCode.NOT_KAKAOTALK_USER) {
		// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
		// 카카오톡 프로필 조회 실패
	}
});

카카오톡 게임 친구 목록 조회하기

카카오톡 게임 친구 목록 조회하는 예제입니다.

import com.kakaogame.KGTKakaoTalk;
import com.kakaogame.KGTKakaoFriendProfile;

// 게임 친구 목록 조회하기
KGTKakaoTalk.friends(result -> {
	if (result.isSuccess()) {
		// 카카오톡 게임 친구 목록 조회 성공.
		List<KGTPlayer> friendList = result.getContent(); // 게임 친구 목록
		
		for (KGTPlayer player : friendList) {
            KGTKakaoFriendProfile kakaoProfile = (KGTKakaoFriendProfile)player.getIdpProfile();
        }
	} else if (result.getCode() == KGTResult.KGTResultCode.NOT_KAKAOTALK_USER) {
		// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
		// 카카오톡 게임 친구 목록 조회 실패
	}
});

카카오톡 게임 메시지 보내기

메시지템플릿을 사용한 카카오톡 게임 메시지를 보내는 예제입니다.
수신된 메시지를 터치하여 게임에 진입할 때 특정 파라미터를 받고 싶으면 메시지 템플릿에 exec parm을 설정하여 사용할 수 있습니다.
카카오톡으로 해당 메시지를 수신해서 앱으로 연결 링크를 터치하면, 앱이 실행되면서 exec param을 넘겨줍니다.
이 값을 이용해서 특정 스테이지를 시작하거나 미리 정의해둔 아이템을 지급해줄 수 있습니다. exec parm은 게임 메시지만 사용할 수 있습니다.

import com.kakaogame.KGTKakaoFriendProfile;
import com.kakaogame.KGTKakaoTalk;
import com.kakaogame.KGTKakaoTalkProfile;

// friends API를 통해 가져온 친구 객체
KGTKakaoFriendProfile kakaoProfile; // 카카오 프로필(KGTKakaoFriendProfile 객체)

// [TODO] 템플릿 Id 설정
String templateId = "";

// [TODO] 메시지 템플릿에 설정한 인자 설정
Map<String, String> args = new LinkedHashMap<>();
if (talkProfile != null) {
	args.put("${nickname}", talkProfile.getNickname());
}
args.put("rog_link", "test=100&hello=20111");
args.put("bruce2", "test=100&hello=20111");

// 카카오톡 게임 메시지 보내기
KGTKakaoTalk.sendGameMessage(kakaoProfile, templateId, args, result -> {
	if (result.isSuccess()) {
		// 카카오톡 채팅 메시지 보내기 성공
	} else {
		if (result.getCode() == KGTResult.KGTResultCode.MESSAGE_SETTING_DISABLE) {
			// 받은이가 메시지 수신 거부를 설정한 경우
		} else if (result.getCode() == KGTResult.KGTResultCode.EXCEED_DAILY_USAGE) {
			// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
		} else if (result.getCode() == KGTResult.KGTResultCode.EXCEED_MONTHLY_USAGE) {
			// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
		} else {
			// 카카오톡 채팅 메시지 보내기 실패
		}
	}
});

카카오톡 친구 초대 메시지 전송하기

카카오톡 친구피커를 이용하여 초대 메시지를 전송합니다.
isSingle 옵션에 따라서 여러 명의 친구에게 초대 메시지를 전송할 수 있습니다.
여러 명의 친구에게 초대 메시지를 전송한 경우, 한 명이라도 성공한 경우 성공 응답을 반환합니다.
isPopup 옵션에 따라서 친구피커를 팝업 형태로 노출 할 수 있습니다. 해당 기능은 KakaoSDK를 통해 지원이 가능한 feature로 Windows SDK에서는 미지원 스펙입니다.

import com.kakaogame.KGTKakaoTalk;
import com.kakaogame.KGTKakaoTalkProfile;
import com.kakaogame.KGTKakaoUser;

// [TODO] 팝업창으로 띄울지 여부 설정
boolean isSingle = true;

// [TODO] 팝업창으로 띄울지 여부 설정
boolean isPopup = true;
  
// [TODO] 템플릿 Id 설정
String templateId = "";

// [TODO] 메시지 템플릿에 설정한 인자 설정
Map<String, String> args = new LinkedHashMap<>();
if (talkProfile != null) {
	args.put("${nickname}", talkProfile.getNickname());
}

KGTKakaoTalk.sendInviteMessage(activity, isSingle, isPopUp, templateId, args, result -> {
	if (result.isSuccess()) {
		// 카카오톡 초대 메시지 보내기 성공
		for (KGTKakaoUser kakaoUser : result.getContent()) {
			// 유저가 초대 메시지를 전송한 유저 목록 확인
		}
	} else {
		// 전부 실패한 경우(공통된 원인 리턴해주기 필요)
		if (result.getCode() == KGTResult.KGTResultCode.MESSAGE_SETTING_DISABLE) {
			// 받은이가 메시지 수신 거부를 설정한 경우
		} else if (result.getCode() == KGTResult.KGTResultCode.EXCEED_DAILY_USAGE) {
			// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생
		} else if (result.getCode() == KGTResult.KGTResultCode.EXCEED_MONTHLY_USAGE) {
			// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생
		} else {
			// 카카오톡 초대 메시지 보내기 실패
		}
	}
});

카카오톡 채널 추가하기

카카오톡 채널을 추가하는 예제입니다.

import com.kakaogame.KGTKakaoTalk;

// [TODO] 채널 Id 설정
int channelId = 0;

KGTKakaoTalk.addChannel(plusFriendId, result -> {
	if (result.isSuccess()) {
		// 채널 추가 성공
	} else if (result.getCode() == KGTResult.KGTResultCode.NOT_KAKAOTALK_USER) {
		// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. 카카오 스토리만 가입한 유저의 계정과 같이 카카오톡 유저가 아닌 경우.
	} else {
		// 채널 추가 실패
	}
});

내 초대 메시지로 가입한 친구 목록 조회하기

내 초대 메시지로 가입한 친구 목록을 조회하는 예제입니다.

가입한 친구가 없는 경우 빈 객체로 전달됩니다.

import com.kakaogame.KGTKakaoInvitation;
import com.kakaogame.KGTPlayer;
import com.kakaogame.KGTKakaoFriendProfile;

// [TODO] 이벤트 Id 설정
int eventId = 0;

// 내가 초대한 플레이어 목록 조회하기
KGTKakaoInvitation.joiners(eventId, result -> {
    if (result.isSuccess()) {
        // 호출 성공

        // 내가 초대한 플레이어 목록 가져오기
        KGTKakaoInvitation.KGTInvitationJoinersResponse joinersResponse = result.getContent();

        // 앱에 가입한 플레이어 목록, 앱 탈퇴자 포함
        List<KGTPlayer> joiners = joinersResponse.getPlayers();

        if (joiners.isEmpty()) {
            // 앱에 가입한 유저 없음
        } else {
            // 앱에 가입한 유저 있음
            for (KGTPlayer player : joiners) {
                // 수신자의 플레이어 아이디
                String playerId = player.getPlayerId();

                KGTKakaoFriendProfile kakaoProfile = (KGTKakaoFriendProfile) player.getIdpProfile();
                // 수신자의 닉네임
                String nickname = kakaoProfile.getNickname();
                // 수신자의 프로필 썸네일 이미지
                String thumbnailImageUrl  = kakaoProfile.getThumbnailImageUrl();

                // 수신지의 탈퇴 이력 조회. UI상에서 탈퇴 여부 정보를 표시할 경우 해당 flag를 사용.
                boolean isUnregistered = kakaoProfile.isUnregistered();
            }
        }
    } else if (result.getCode() == KGTResult.KGTResultCode.NOT_KAKAOTALK_USER) {
        // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
    } else {
        // 호출 실패
    }
});

내가 초대 메시지를 보낸 친구 숫자 조회하기

내가 초대 메시지를 보낸 친구 숫자를 조회하는 예제입니다.

import com.kakaogame.KGTKakaoInvitation;

// [TODO] 이벤트 Id 설정
int eventId = 0;

// 내가 초대한 플레이어 명 수 조회하기
KGTKakaoInvitation.receiversCount(eventId, result -> {
    if (result.isSuccess()) {
        // 호출 성공

        KGTInvitationReceviersCountResponse response = result.getContent(); // 내가 초대한 친수 명 수 가져오기

        int total = response.getTotalReceiversCount();
        int joinersCount = response.getJoinersCount();
    } else if (result.getCode() == KGTResult.KGTResultCode.NOT_KAKAOTALK_USER) {
        // 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
    } else {
        // 호출 실패
    }
});
  • 레이블 없음

0 댓글

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