21.1 카카오톡 친구 초대 예제
21.1. 카카오톡 친구 초대 예제
주의
기존 3.9.0 미만 API들과 혼합하여 사용하지 마세요.
2022년 이후 신규 출시하는 게임에서는 아래 가이드 된 친구 목록 가져오기 및 메시지 보내기 API를 사용하실 수 없습니다.
친구 피커를 이용한 메시지 보내기 기능을 사용해주세요.
21.1.1. 진행중인 초대 이벤트 조회하기
진행중인 초대 이벤트 목록을 조회하는 예제입니다.
Unity 예제
using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
// 진행중인 초대 이벤트 목록 조회하기
KGKakaoInvitation.LoadEvents((result, events) => {
if (result.isSuccess)
{
// 호출 성공
// 진행중인 초대 이벤트 목록 가져오기
if (events != nil)
{
foreach (KGKakaoEvent invitationEvent in invitationEvents)
{
// 이벤트 아이디: 초대 메시지 전송, 초대장을 보낸 사람과 받은 사람 목록 가져오기 시 필요.
int eventId = invitationEvent.eventId;
// 이벤트 시작 시각
long startTime = invitationEvent.startTime;
// 이벤트 종료 시각
long finishTime = invitationEvent.finishTime;
// 설명
string eventDescription = invitationEvent.eventDescription;
}
}
}
else if (result.code == KGResultCode.NotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}); |
Android 예제
import com.kakaogame.KGKakaoInvitation;
import com.kakaogame.KGKakaoInvitation.KGKakaoEvent;
import com.kakaogame.KGResult;
// 진행중인 초대 이벤트 목록 조회하기
KGKakaoInvitation.loadEvents(new KGResultCallback<List<KGKakaoEvent>>() {
@Override
public void onResult(KGResult<List<KGKakaoEvent>> result) {
if (result.isSuccess()) {
// 호출 성공
// 진행중인 초대 이벤트 목록 가져오기
List<KGKakaoEvent> invitationEventList = result.getContent();
for (KGKakaoEvent invitationEvent : invitationEventList) {
// 이벤트 아이디: 초대 메시지 전송, 초대장을 보낸 사람과 받은 사람 목록 가져오기 시 필요.
int eventId = invitationEvent.getEventId();
// 이벤트 시작 시각
long startTime = invitationEvent.getStartTime();
// 이벤트 종료 시각
long finishTime = invitationEvent.getFinishTime();
// 설명
String description = invitationEvent.getEventDescription();
}
} else if (result.getCode() == KGResult.KGResultCode.NOT_KAKAOTALK_USER) {
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
} else {
// 호출 실패
}
}
}); |
iOS 예제
#import <KakaoGame/KakaoGame.h>
// 진행중인 초대 이벤트 목록 조회하기
[KGKakaoInvitation loadEventsWithCompletionHandler:^(NSError *error, NSArray *invitationEvents) {
if (IS_SUCCESS(error) == YES)
{
// 호출 성공
// 진행중인 초대 이벤트 목록 가져오기
if (invitationEvents != nil)
{
for (KGKakaoEvent *invitationEvent in invitationEvents)
{
// 이벤트 아이디: 초대 메시지 전송, 초대장을 보낸 사람과 받은 사람 목록 가져오기 시 필요.
int eventId = invitationEvent.eventId;
// 이벤트 시작 시각
long long startTime = invitationEvent.startTime;
// 이벤트 종료 시각
long long finishTime = invitationEvent.finishTime;
// 설명
NSString *eventDescription = invitationEvent.eventDescription;
}
}
}
else if (error.code == KGErrorNotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}]; |
21.1.2. 카카오톡 초대 가능한 추천 친구 목록 조회하기
초대 메시지 전송 시 초대 가능한 추천 친구 목록을 조회하는 예제입니다.
카카오톡 초대 메시지 전송 시 반드시 이 API를 사용하여 받은 친구 객체를 인자로 전달해야합니다.
친구 목록은 인자로 넘긴 추천 친구 수 만큼 서버에서 매겨진 랭킹에 따라 먼저 목록에 포함되고 이후부터는 가나다 순으로 정렬됩니다.
LoadInvitableFriendProfiles() 의 첫 번째 매개변수에는 항상 0을 넣어주어야합니다.
Unity 예제
using Kakaogame.SDK;
using Kakaogame.SDK.Kakao;
// [TODO] 친구 목록 조회 시작 값 설정
int offset; // 친구 목록 조회 시작 값
// [TODO] 친구 목록 조회 사이즈 설정
int limit; // 친구 목록 사이즈
// 카카오톡으로 초대 가능한 친구 프로필 목록 조회하기
KGKakaoInvitation.LoadInvitableFriendProfiles(0, offset, limit, (result, totalCount, kakaoProfiles) => {
if (result.isSuccess)
{
// 요청 성공
// 초대 대상 친구 목록
foreach (KGKakaoProfile kakaoProfile in kakaoProfiles)
{
// 친구의 카카오톡 닉네임
string nickname = kakaoProfile.nickname;
// 친구의 카카오톡 프로필 썸네일 이미지 Url
string thumbnailImageUrl = kakaoProfile.thumbnailImageUrl;
// 친구의 카카오톡 설치 os 정보
string talkOs = kakaoProfile.kakaoTalkOS.ToString();
// 친구의 메시지 수신 허용 여부, false 인 경우 메시지를 보내지 못하도록 합니다.
bool isAllowMessage = kakaoProfile.isAllowedMessage;
}
}
else if (result.code == KGResultCode.NotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}); |
Android 예제
import com.kakaogame.KGKakaoInvitation;
import com.kakaogame.KGKakaoProfile;
import com.kakaogame.KGKakaoProfile.KGKakaoFriendsResponse;
import com.kakaogame.KGResult;
// [TODO] 친구 목록 조회 시작 값 설정
int offset; // 친구 목록 조회 시작 값
// [TODO] 친구 목록 조회 사이즈 설정
int limit; // 친구 목록 사이즈
// 카카오톡으로 초대 가능한 친구 프로필 목록 조회하기
KGKakaoInvitation.loadInvitableFriendProfiles(0, offset, limit, new KGResultCallback<KGKakaoFriendsResponse>() {
@Override
public void onResult(KGResult<KGKakaoFriendsResponse> result) {
if (result.isSuccess()) {
// 요청 성공
// 카카오톡 초대 가능한 친구 목록 결과 가져오기
KGKakaoFriendsResponse response = result.getContent();
// 초대 가능한 친구 전체 수
int totalCount = response.getTotalCount();
// 초대 대상 친구 목록 - 초대 메시지 전송 시 사용할 친구 프로필 객체 목록
List<KGKakaoProfile> friendList = response.getFriendList();
for (KGKakaoProfile kakaoProfile : friendList) {
// 친구의 카카오톡 닉네임
String nickname = kakaoProfile.getNickname();
// 친구의 카카오톡 프로필 썸네일 이미지 Url
String thumbnailImageUrl = kakaoProfile.getThumbnailImageUrl();
// 친구의 카카오톡 설치 os 정보
String talkOs = kakaoProfile.getTalkOs();
// 친구의 메시지 수신 허용 여부, false 인 경우 메시지를 보내지 못하도록 합니다.
boolean isAllowMessage = kakaoProfile.isAllowedMessage();
}
} else if (result.getCode() == KGResult.KGResultCode.NOT_KAKAOTALK_USER) {
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
} else {
// 요청 실패
}
}
}); |
iOS 예제
#import <KakaoGame/KakaoGame.h>
// [TODO] 친구 목록 조회 시작 값 설정
int offset; // 친구 목록 조회 시작 값
// [TODO] 친구 목록 조회 사이즈 설정
int limit; // 친구 목록 사이즈
// 카카오톡으로 초대 가능한 친구 프로필 목록 조회하기
[KGKakaoInvitation loadInvitableFriendProfilesWithRecommendLimit:0 offset:offset limit:limit completionHandler:^(NSError *error, int totalCount, NSArray *idpProfiles) {
if (IS_SUCCESS(error) == YES)
{
// 요청 성공
// 초대 대상 친구 목록 - 초대 메시지 전송 시 사용할 친구 프로필 객체 목록
for (KGKakaoProfile *kakaoProfile in idpProfiles)
{
// 친구의 카카오톡 닉네임
NSString *nickname = kakaoProfile.nickname;
// 친구의 카카오톡 프로필 썸네일 이미지 Url
NSString *thumbnailImageUrl = kakaoProfile.thumbnailImageUrl;
// 친구의 카카오톡 설치 os 정보
NSString *talkOs = kakaoProfile.kakaoTalkOS.description;
// 친구의 메시지 수신 허용 여부, false 인 경우 메시지를 보내지 못하도록 합니다.
BOOL isAllowMessage = kakaoProfile.isAllowedMessage;
}
}
else if (error.code == KGErrorNotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}]; |
21.1.3. 카카오톡 초대 메시지 보내기
카카오톡 초대 메시지를 보내는 예제입니다. (가이드 : 20. 카카오톡 메시지 템플릿 V2 )
Unity 예제
using Kakaogame.SDK;
using Kakaogame.SDK.Kakao;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 메시지를 전송
// [TODO] 템플릿 Id 설정
int templateId = 4100; // 메시지 템플릿 어드민에서 생성한 템플릿의 Id 값
// [TODO] 메시지 템플릿에 설정한 인자 설정
String nickname = ((KGKakaoProfile) KGLocalPlayer.getCurrentPlayer().getIdpProfile()).getNickname();
Map<String, String> args = new LinkedHashMap<String, String>();
args.put("${sender_name}", nickname);
// [TODO] 수신자 프로필 설정
KGKakaoProfile kakaoProfile; // 'loadInvitableFriendProfiles'로 조회한 친구 객체
// 카카오톡 초대 메시지 보내기
KGKakaoInvitation.SendInviteMessage(eventId, kakaoProfile, templateId, args, (result) => {
if (result.isSuccess)
{
// 요청 성공
}
else
{
// 요청 실패
if (result.code == KGResultCode.MessageSettingDisabled)
{
// 받은이가 메시지 수신 거부를 설정한 경우.
}
else if (result.code == KGResultCode.ExceedDailyUsage)
{
// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생.
}
else if (result.code == KGResultCode.ExceedMonthlyUsage)
{
// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생.
}
else if (result.code == KGResultCode.NotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 그 밖의 에러
}
}
}); |
Android 예제
import com.kakaogame.KGKakaoInvitation;
import com.kakaogame.KGLocalPlayer;
import com.kakaogame.KGKakaoProfile;
import com.kakaogame.KGResult;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 메시지를 전송
// [TODO] 템플릿 Id 설정
int templateId = 4100; // 메시지 템플릿 어드민에서 생성한 템플릿의 Id 값
// [TODO] 메시지 템플릿에 설정한 인자 설정
string nickname = ((KGKakaoProfile) KGLocalPlayer.currentPlayer.idpProfile).nickname;
Dictionary<String, String> args = new Dictionary<String, String>();
args.add("${sender_name}", nickname);
// [TODO] 수신자 프로필 설정
KGKakaoProfile kakaoProfile; // 'loadInvitableFriendProfiles'로 조회한 친구 객체
// 카카오톡 초대 메시지 보내기
KGKakaoInvitation.sendInviteMessage(eventId, kakaoProfile, templateId, args, new KGResultCallback<Void>() {
@Override
public void onResult(KGResult<Void> result) {
if (result.isSuccess()) {
// 요청 성공
} else {
// 요청 실패
if (result.getCode() == KGResult.KGResultCode.MESSAGE_SETTING_DISABLE) {
// 받은이가 메시지 수신 거부를 설정한 경우.
} else if (result.getCode() == KGResult.KGResultCode.EXCEED_DAILY_USAGE) {
// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생.
} else if (result.getCode() == KGResult.KGResultCode.EXCEED_MONTHLY_USAGE) {
// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생.
} else if (result.getCode() == KGResult.KGResultCode.NOT_KAKAOTALK_USER) {
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
} else {
// 그 밖의 에러
}
}
}
}); |
iOS 예제
#import <KakaoGame/KakaoGame.h>
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 메시지를 전송
// [TODO] 템플릿 Id 설정
int templateId = 4100; // 메시지 템플릿 어드민에서 생성한 템플릿의 Id 값
// [TODO] 메시지 템플릿에 설정한 인자 설정
String nickname = ((KGKakaoProfile) KGLocalPlayer.getCurrentPlayer().getIdpProfile()).getNickname();
Map<String, String> args = new LinkedHashMap<String, String>();
args.put("${sender_name}", nickname);
// [TODO] 수신자 프로필 설정
KGKakaoProfile kakaoProfile; // 'loadInvitableFriendProfiles'로 조회한 친구 객체
// 카카오톡 초대 메시지 보내기
[KGKakaoInvitation sendInviteMessageWithEventId:eventId kakaoProfile:kakaoProfile templateId:templateId argumentDic:args (result) => {
if (IS_SUCCESS(error) == YES)
{
// 요청 성공
}
else if (error.code == KGErrorMessageSettingDisabled)
{
// 받은이가 메시지 수신 거부를 설정한 경우.
}
else if (error.code == KGErrorExceedDailyUsage)
{
// 한명이 특정 앱에 대해 보낼 수 있는 하루 쿼터(받는 사람 관계없이) 초과시 발생.
}
else if (error.code == KGErrorExceedMothlyUsage)
{
// 한명이 특정 앱에 대해 특정인에게 보낼 수 있는 한달 쿼터 초과시 발생.
}
else if (error.code == KGErrorNotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}]; |
21.1.4. 내가 초대 메시지를 보낸 친구 숫자 조회하기
내가 초대 메시지를 보낸 친구 숫자를 조회하는 예제입니다.
Unity 예제
using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
KGKakaoInvitation.LoadReceiversCount(eventId, (result, totalReceiversCount, joinersCount) => {
if (result.isSuccess)
{
// 호출 성공
// 전체 친구 수
int totalCount = totalReceiversCount;
// 게임에 가입한 친구 수
int registeredCount = joinersCount;
}
else
{
// 호출 실패
}
}); |
Android 예제
import com.kakaogame.KGKakaoInvitation;
import com.kakaogame.KGKakaoInvitation.KGInvitationReceviersResponse;
import com.kakaogame.KGPlayer;
import com.kakaogame.KGKakaoProfile;
import com.kakaogame.KGResult;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 내가 초대한 친구 수 조회하기
KGKakaoInvitation.loadReceiversCount(eventId, new KGResultCallback<KGInvitationReceviersCountResponse>() {
@Override
public void onResult(KGResult<KGInvitationReceviersCountResponse> result) {
if (result.isSuccess()) {
// 호출 성공
KGInvitationReceviersCountResponse response = result.getContent(); // 내가 초대한 친구 숫자 가져오기
// 전체 친구 수
int total = response.getTotalReceiversCount();
// 게임에 가입한 친구 수
int joinersCount = response.getJoinersCount();
} else {
// 호출 실패
}
}
}); |
iOS 예제
#import <KakaoGame/KakaoGame.h>
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
[KGKakaoInvitation loadReceiversCountWithEventId:eventId completionHandler:^(NSError *error, int totalReceiversCount, int joinersCount) {
if (IS_SUCCESS(error) == YES)
{
// 호출 성공
// 전체 친구 수
int totalCount = totalReceiversCount;
// 게임에 가입한 친구 수
int registeredCount = joinersCount;
}
else
{
// 호출 실패
}
}]; |
21.1.5. 내가 초대 메시지를 보낸 친구 목록 조회하기
내가 초대 메시지를 보낸 친구 목록을 조회하는 예제입니다.
Unity 예제
using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 내가 초대한 플레이어 목록 조회하기
KGKakaoInvitation.LoadReceivers(eventId, (result, joiners, invitees) => {
if (result.isSuccess)
{
// 호출 성공
// 앱에 가입한 플레이어 목록, 앱 탈퇴자 포함
foreach (KGPlayer joiner in joiners)
{
// 초대자의 플레이어 아이디
string playerId = joiner.playerId;
KGKakaoProfile kakaoProfile = (KGKakaoProfile)joiner.idpProfile;
// 초대자의 닉네임
string nickname = kakaoProfile.nickname;
// 초대자의 프로필 썸네일 이미지
string thumbnailImageUrl = kakaoProfile.thumbnailImageUrl;
// 수신지의 탈퇴 이력 조회.
// 수신자가 앱을 가입 후 탈퇴했을 경우 초대자는 수신자의 '가입'에 대한 보상을 이미 받았기 때문에 가입 보상 카운트와 가입한 수신자 명 수와 다를 수 있음.
// UI상에서 탈퇴 여부 정보를 표시할 경우 해당 flag를 사용.
BOOL isUnregistered = kakaoProfile.isUnregistered;
}
// 앱에 아직 가입하지 않은 수신자 목록
// 앱에 가입하지 않았기 때문에 플레이어 아이디는 제공되지 않습니다.
foreach (KGKakaoPrfoile invitee in invitees)
{
// 초대자의 닉네임
string nickname = invitee.nickname;
// 초대자의 프로필 썸네일 이미지
string thumbnailImageUrl = invitee.thumbnailImageUrl;
}
}
else if (result.code == KGResultCode.NotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}); |
Android 예제
import com.kakaogame.KGKakaoInvitation;
import com.kakaogame.KGKakaoInvitation.KGInvitationReceviersResponse;
import com.kakaogame.KGPlayer;
import com.kakaogame.KGKakaoProfile;
import com.kakaogame.KGResult;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 내가 초대한 친구 목록 조회하기
KGKakaoInvitation.loadReceivers(eventId, new KGResultCallback<KGKakaoInvitation.KGInvitationReceviersResponse>() {
@Override
public void onResult(KGResult<KGKakaoInvitation.KGInvitationReceviersResponse> result) {
if (result.isSuccess()) {
// 호출 성공
// 내가 초대한 친구 목록 가져오기
KGKakaoInvitation.KGInvitationReceviersResponse receivers = result.getContent();
// 앱에 가입한 플레이어 목록, 앱 탈퇴자 포함
List<KGPlayer> joiners = receivers.getJoiners();
for (KGPlayer player : joiners) {
// 수신자의 플레이어 아이디
String playerId = player.getPlayerId();
KGKakaoProfile kakaoProfile = (KGKakaoProfile) player.getIdpProfile();
// 수신자의 닉네임
String nickname = kakaoProfile.getNickname();
// 수신자의 프로필 썸네일 이미지
String thumbnailImageUrl = kakaoProfile.getThumbnailImageUrl();
// 수신지의 탈퇴 이력 조회. UI상에서 탈퇴 여부 정보를 표시할 경우 해당 flag를 사용.
boolean isUnregistered = kakaoProfile.isUnregistered();
}
// 앱에 아직 가입하지 않은 목록
List<KGKakaoProfile> invitees = receivers.getInvitees();
for (KGKakaoProfile kakaoProfile : invitees) {
// 수신자의 닉네임
String nickname = kakaoProfile.getNickname();
// 수신자의 프로필 썸네일 이미지
String thumbnailImageUrl = kakaoProfile.getThumbnailImageUrl();
}
} else if (result.getCode() == KGResult.KGResultCode.NOT_KAKAOTALK_USER) {
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
} else {
// 호출 실패
}
}
}); |
iOS 예제
#import <KakaoGame/KakaoGame.h>
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 내가 초대한 플레이어 목록 조회하기
[KGKakaoInvitation loadReceiversWithEventId:eventId completionHandler:^(NSError *error, NSArray *joiners, NSArray *invitees) {
if (IS_SUCCESS(error) == YES)
{
// 호출 성공
// 앱에 가입한 플레이어 목록, 앱 탈퇴자 포함
for (KGPlayer *joiner in joiners)
{
// 초대자의 플레이어 아이디
NSString *playerId = joiner.playerId;
KGKakaoProfile *kakaoProfile = (KGKakaoProfile*)joiner.idpProfile;
// 초대자의 닉네임
NSString *nickname = kakaoProfile.nickname;
// 초대자의 프로필 썸네일 이미지
NSString *thumbnailImageUrl = kakaoProfile.thumbnailImageUrl;
// 수신지의 탈퇴 이력 조회.
// 수신자가 앱을 가입 후 탈퇴했을 경우 초대자는 수신자의 '가입'에 대한 보상을 이미 받았기 때문에 가입 보상 카운트와 가입한 수신자 명 수와 다를 수 있음.
// UI상에서 탈퇴 여부 정보를 표시할 경우 해당 flag를 사용.
BOOL isUnregistered = kakaoProfile.isUnregistered;
}
// 앱에 아직 가입하지 않은 수신자 목록
// 앱에 가입하지 않았기 때문에 플레이어 아이디는 제공되지 않습니다.
for (KGKakaoPrfoile *invitee in invitees)
{
// 초대자의 닉네임
NSString *nickname = invitee.nickname;
// 초대자의 프로필 썸네일 이미지
NSString *thumbnailImageUrl = invitee.thumbnailImageUrl;
}
}
else if (error.code == KGErrorNotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}]; |
21.1.6. 나에게 초대 메시지를 보낸 플레이어 숫자 조회하기
나에게 초대 메시지를 보낸 플레이어 숫자를 조회하는 예제입니다.
Unity 예제
using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
KGKakaoInvitation.LoadSendersCount(eventId, (result, count) => {
if (result.isSuccess)
{
// 호출 성공
// 나를 초대한 플레이어 수 가져오기
int senderCount = count;
}
else
{
// 호출 실패
}
}); |
Android 예제
import com.kakaogame.KGKakaoInvitation;
import com.kakaogame.KGKakaoInvitation.KGInvitationReceviersResponse;
import com.kakaogame.KGPlayer;
import com.kakaogame.KGKakaoProfile;
import com.kakaogame.KGResult;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 나를 초대한 플레이어 명 수 조회하기
KGKakaoInvitation.loadSendersCount(eventId, new KGResultCallback<Integer>() {
@Override
public void onResult(KGResult<Integer> result) {
if (result.isSuccess()) {
// 호출 성공
int count = result.getContent(); // 나를 초대한 플레이어 수 가져오기
} else {
// 호출 실패
}
}
}); |
iOS 예제
#import <KakaoGame/KakaoGame.h>
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
[KGKakaoInvitation loadSendersCountWithEventId:eventId completionHandler:^(NSError *error, int count) {
if (IS_SUCCESS(error) == YES)
{
// 호출 성공
// 나를 초대한 플레이어 수 가져오기
int senderCount = count;
}
else
{
// 호출 실패
}
}]; |
21.1.7. 나에게 초대 메시지를 보낸 플레이어 목록 조회하기
나에게 초대 메시지를 보낸 플레이어 목록을 조회하는 예제입니다.
Unity 예제
using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 나를 초대한 플레이어 조회하기
KGKakaoInvitation.LoadSenders(eventId, (result, invitationSenders) => {
if (result.isSuccess)
{
// 호출 성공
// 나를 초대한 플레이어 목록 가져오기
if (invitationSenders != null && invitationSenders.Count > 0)
{
foreach (KGPlayer player in invitationSenders)
{
// 초대자의 플레이어 아이디
string playerId = player.playerId;
KGKakaoProfile kakaoProfile = (KGKakaoProfile)player.idpProfile;
// 초대자의 닉네임
string nickname = kakaoProfile.nickname;
// 초대자의 프로필 썸네일 이미지
string thumbnailImageUrl = kakaoProfile.thumbnailImageUrl;
}
}
else
{
// 나를 초대한 플레이어가 없음
}
}
else if (result.code == KGResultCode.NotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}); |
Android 예제
import com.kakaogame.KGKakaoInvitation;
import com.kakaogame.KGPlayer;
import com.kakaogame.KGKakaoProfile;
import com.kakaogame.KGResult;
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 나를 초대한 플레이어 조회하기
KGKakaoInvitation.loadSenders(eventId, new KGResultCallback<List<KGPlayer>>() {
@Override
public void onResult(KGResult<List<KGPlayer>> result) {
if (result.isSuccess()) {
// 호출 성공
// 나를 초대한 플레이어 목록 가져오기
List<KGPlayer> invitationSenders = result.getContent();
if (invitationSenders != null && invitationSenders.size() > 0) {
// 나를 초대한 플레이어가 있음
for (KGPlayer player : invitationSenders) {
// 초대자의 플레이어 아이디
String playerId = player.getPlayerId();
KGKakaoProfile kakaoProfile = (KGKakaoProfile) player.getIdpProfile();
// 초대자의 닉네임
String nickname = kakaoProfile.getNickname();
// 초대자의 프로필 썸네일 이미지
String thumbnailImageUrl = kakaoProfile.getThumbnailImageUrl();
}
} else {
// 나를 초대한 플레이어가 없음
}
} else if (result.getCode() == KGResult.KGResultCode.NOT_KAKAOTALK_USER) {
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다. (예 : 카카오 스토리만 가입한 유저의 계정)
} else {
// 호출 실패
}
}
}); |
iOS 예제
#import <KakaoGame/KakaoGame.h>
// [TODO] 이벤트 아이디 설정
int eventId = 511; // 해당 초대 이벤트를 대상으로 조회
// 나를 초대한 플레이어 조회하기
[KGKakaoInvitation loadSendersWithEventId:eventId completionHandler:^(NSError *error, NSArray *invitationSenders) {
if (IS_SUCCESS(error) == YES)
{
// 호출 성공
// 진행중인 초대 이벤트 목록 가져오기
if (invitationSenders != nil && [invitationSenders count] > 0)
{
for (KGPlayer *invitationSender in invitationSenders)
{
// 초대자의 플레이어 아이디
NSString *playerId = invitationSender.playerId;
KGKakaoProfile *kakaoProfile = (KGKakaoProfile*)invitationSender.idpProfile;
// 초대자의 닉네임
NSString *nickname = kakaoProfile.nickname;
// 초대자의 프로필 썸네일 이미지
NSString *thumbnailImageUrl = kakaoProfile.thumbnailImageUrl;
}
}
}
else if (error.code == KGErrorNotKakaoTalkUser)
{
// 로그인 한 유저가 '카카오톡' 유저가 아닙니다.
}
else
{
// 호출 실패
}
}]; |
, multiple selections available,