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

이 페이지의 이전 버전을 보고 있습니다. 현재 버전 보기.

현재와 비교 페이지 이력 보기

버전 1 현재 »

22.1. Reward Invitation(beta) Example


Do not mix with new 3.9.0 or higher APIs.

22.1.1. Querying ongoing reward invitation event list

This section shows an example of a query of the ongoing 'reward invitation event list.

Unity Example

using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
 
KGKakaoInvitationEvent.LoadInvitationEvents(
    (result, events) => {
        if (result.isSuccess) {
            // Successful invitation event list lookup
            foreach (var ev in events) {
                int eventId = ev.eventId;
                bool isEventCardEnabled = ev.isEventCardEnabled; // Whether to show event cards
                long startTime = ev.startTime; // Event start time
                long endTime = ev.finishTime; // Event end time
                int maxHostRewardCount = ev.maxHostRewardCount; // Maximum number of rewards the invitees can receive
                string hostRewardCode = ev.hostRewardCode; // The code of the reward item that the invitee receives
                string joinerRewardCode = ev.joinRewardCode; // The code of the reward item that the participant receives
                string invitationUrl = ev.invitationUrl; // Invitation URL. You must enter this when sending an invitation message.
                int totalJoinerCount = ev.totalJoinerCount; // The number of people who have participated in my invite so far
            }
        }
        else {
            // Fail invitation event list lookup
        }
    });

Android Example

// query of the ongoing 'reward invitation event list.
KGKakaoInvitationEvent.loadInvitationEvents(new KGResultCallback<List<KGKakaoInvitationEvent>>() {
    @Override
    public void onResult(KGResult<List<KGKakaoInvitationEvent>> result) {
        if (result.isSuccess()) {
            // Successful invitation event list lookup
 
            List<KGKakaoInvitationEvent> invitationEventList = result.getContent(); // ongoing 'reward invitation event list
 
            for (KGKakaoInvitationEvent invitationEvent : invitationEventList) {
                int eventId = invitationEvent.getEventId();
                boolean isEventCardEnabled = invitationEvent.isEventCardEnabled();
                long startTime = invitationEvent.getStartTime();
                long finishTime = invitationEvent.getFinishTime();
                int maxHostRewardCount = invitationEvent.getMaxHostRewardCount();
                String hostRewardCode = invitationEvent.getHostRewardCode();
                String joinRewrdCode = invitationEvent.getJoinRewardCode();
                String invitationUrl = invitationEvent.getInvitationUrl();
                int totalJoinerCount = invitationEvent.getTotalJoinerCount();
            }
        } else {
            // Fail invitation event list lookup
        }
 
    }

iOS Example

#import <KakaoGame/KakaoGame.h>
 
[KGKakaoInvitationEvent loadInvitationEventsWithCompletionHandler:^(NSError *error, NSArray *invitationEvents) {
    if (IS_SUCCESS(error) == YES)
    {
        // Successful invitation event list lookup
 
           // ongoing 'reward invitation event list
           for (KGKakaoInvitationEvent *invitationEvent in invitationEvents)
           {
           int eventId = invitationEvent.eventId; // Event ID
           bool isEventCardEnabled = invitationEvent.isEventCardEnabled; // Whether to show event cards
           long long startTime = invitationEvent.startTime; // Event start time
           long long finishTime = invitationEvent.finishTime; // Event end time
           int maxHostRewardCount = invitationEvent.maxHostRewardCount; // Maximum number of rewards the invitees can receive
           NSString *hostRewardCode = invitationEvent.hostRewardCode;  // The code of the reward item that the invitee receives
           NSString *joinRewardCode = invitationEvent.joinRewardCode; // The code of the reward item that the participant receives
           NSString *invitationUrl = invitationEvent.invitationUrl; // Invitation URL. You must enter this when sending an invitation message.
           int totalJoinerCount = invitationEvent.totalJoinerCount; // The number of people who have participated in my invite so far
           }
    }
    else
    {
        // Fail invitation event list lookup
    }
}];

22.1.2. Querying user who invited you

This section shows an example of a query of the user who invited you.

Unity Example

using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
 
KGKakaoInvitationHost.LoadInvitationHosts(
 
    EVENT_ID,
    (result, hosts) => {
        if (result.isSuccess) {
            // Query of user who invite me successful
  
            foreach (var host in hosts)
            {
                if (host != null) {
                    // you have someone who invited you
                    KGPlayer player = host.player; // player information
                    int totalJoinerCount = host.totalJoinerCount;
                }
                else {
                    // No player invited me
                }
            }
        }
        else {
            // Query of user who invite me failed
        }
    });

Android Example

KGKakaoInvitationHost.loadInvitationHosts(eventId, new KGResultCallback<List<KGKakaoInvitationHost>>() {
    @Override
    public void onResult(KGResult<List<KGKakaoInvitationHost>> result) {
        writeLog("KGKakaoInvitationHost.loadInvitationHost: " + result);
 
        if (result.isSuccess()) {
            // Query of user who invite me successful
 
            List<KGKakaoInvitationHost> invitationHosts = result.getContent(); // hosts information
 
            if (invitationHosts != null && invitationHosts.size() > 0) {
                // you have someone who invited you
                for (KGKakaoInvitationHost invitationHost : invitationHosts) {
                    KGPlayer player = invitationHost.getPlayer();
                    int totalJoinerCount = invitationHost.getTotalJoinerCount();
                }
            } else {
                // No player invited me
            }
        } else {
            // Query of user who invite me failed
        }
    }
});

iOS Example

#import <KakaoGame/KakaoGame.h>
 
[KGKakaoInvitationHost loadInvitationHostsWithEventId:eventId completionHandler:^(NSError *error, NSArray *invitationHosts) {
 
    if (IS_SUCCESS(error) == YES)
    {
        // Query of user who invite me successful
        for (KGKakaoInvitationHost* invitationHost in invitationHosts)
        {
            if (invitationHost != nil)
            {
                // you have someone who invited you
                KGPlayer *player = invitationHost.player; // player information
                int totalJoinerCount = invitationHost.totalJoinerCount;
            }
            else
            {
                // No player invited me
            }
        }
    }
    else
    {
        // Query of user who invite me failed
    }
}];

22.1.3. View a list of players who have participated in my invitation

This section shows an example of a query of View a list of players who have participated in my invitation.

Unity Example

using KakaoGame.SDK;
using KakaoGame.SDK.Kakao;
 
KGKakaoInvitationJoiner.LoadInvitationJoiners(
    EVENT_ID,
    (result, joiners) => {
        if (result.isSuccess) {
            // Successful viewed participate player list with my invitation
            foreach (var joiner in joiners) {
                KGPlayer player = joiner.player;
 
                string hostRewardCode = joiner.hostRewardCode;
                KGKakaoInvitationRewardState hostRewardState = joiner.hostRewardState;
 
                string joinerRewardCode = joiner.joinRewardCode;
                KGKakaoInvitationRewardState joinerRewardState = joiner.joinRewardState;
 
                long joinTime = joiner.joinTime; // Join time
            }
        }
        else {
            // Fail viewed participate player list with my invitation
        }
    });

Android Example

KGKakaoInvitationJoiner.loadInvitationJoiners(eventId, new KGResultCallback<List<KGKakaoInvitationJoiner>>() {
    @Override
    public void onResult(KGResult<List<KGKakaoInvitationJoiner>> result) {
        if (result.isSuccess()) {
            // Successful viewed participate player list with my invitation
 
            List<KGKakaoInvitationJoiner> invitationJoinerList = result.getContent(); // list of players who have participated in my invitation
            for (KGKakaoInvitationJoiner invitationJoiner : invitationJoinerList) {
                KGPlayer player = invitationJoiner.getPlayer();
 
                int hostRewardCode = invitationJoiner.getHostRewardCode();
                KGKakaoInvitationRewardState hostRewardState = invitationJoiner.getHostRewardState();
 
                int joinRewardCode = invitationJoiner.getJoinRewardCode();
                KGKakaoInvitationRewardState joinRewardState = invitationJoiner.getJoinRewardState();
 
                long joinTime = invitationJoiner.getJoinTime();
            }
        } else {
            // Fail viewed participate player list with my invitation
        }
    }
});

iOS Example

#import <KakaoGame/KakaoGame.h>
 
[KGKakaoInvitationJoiner loadInvitationJoinersWithEventId:eventId completionHandler:^(NSError *error, NSArray *invitationJoiners) {
    if (IS_SUCCESS(error) == YES)
    {
        // Successful viewed participate player list with my invitation
 
        // list of players who have participated in my invitation
           for (KGKakaoInvitationJoiner *invitationJoiner in invitationJoiners)
           {
               KGPlayer *player = invitationJoiner.player;
 
               int hostRewardCode = invitationJoiner.hostRewardCode;
               KGKakaoInvitationRewardState hostRewardState = invitationJoiner.hostRewardState;
 
               NSString *joinRewardCode = invitationJoiner.joinRewardCode;
               KGKakaoInvitationRewardState joinRewardState = invitationJoiner.joinRewardState;
 
               long long joinTime = invitationJoiner.joinTime; // Join time
           }
    }
    else
    {
        // Fail viewed participate player list with my invitation
    }
}];

22.1.4. Send invitation message with Kakao Talk

This is an example of sending an invitation message to KakaoTalk.

By default, this is the same as sending a regular invitation, but you must use the templateId for compensating invites and add an invitation_event_id.

(Guide : 20. Kakaotalk Message Template V2)

Unity

using Kakaogame.SDK;
// [TODO] Get Kakao profile information from invitable friends list.
KGKakaoProfile kakaoProfile;
// [TODO] Set invitation message template ID.
string templateId = "1679";
// [TODO] Add the required arguments to the invitation message
Dictionary<string, object> argumentDic = new Dictionary<string, object>() {
    {"name", "Nickname"},
    {"iphoneMarketParam" : "test"},
    {"iphoneExecParam", "test"},
    {"sender_name", "iOSTester"},
    {"invitation_event_id", 29} // Add only for compensated invitations
};
// Send an invitation message to KakaoTalk.
KGKakaoTalkMessage.SendNewInviteMessage(
    kakaoProfile,
    templateId,
    argumentDic,
    (result) => {
        if (result.isSuccess) {
            // Send invitation message to KakaoTalk succeeded.
        }
        else if (result.code == KGResultCode.MessageSettingDisabled) {
            // The recipient set to unsubscribe.
        }
        else if (result.code == KGResultCode.ExceedDailyUsage) {
            // Occurs when one day exceeds a day's quota (regardless of recipient) that can be sent for a specific app.
        }
        else if (result.code == KGResultCode.ExceedMonthlyUsage) {
            // Occurs when one month exceeds a month's quota that a specific person can send to a particular app.
        }
        else {
            // Failed to send invitation message to KakaoTalk.
        }
    });

Android

// [TODO] Get Kakao profile information from invitable friends list.
KGKakaoProfile kakaoProfile;
// [TODO] Set invitation message template ID.
String templateId;
// [TODO] Add the required arguments to the invitation message.
Map<String, String> args = new LinkedHashMap<String, String>();
String nickname = ((KGKakaoProfile)KGLocalPlayer.getCurrentPlayer().getIdpProfile()).getNickname();
args.put("${sender_name}", nickname);
args.put("${invitation_event_id}", ""); // Add only for compensated invitations
// Send an invitation message to KakaoTalk.
KGKakaoTalkMessage.sendNewInviteMessage(kakaoProfile, templateId, args, new KGResultCallback<Boolean>() {
    @Override
    public void onResult(KGResult<Boolean> result) {
        if (result.isSuccess()) {
            // Send invitation message to KakaoTalk succeeded.
        } else {
            // Fail
            if (result.getCode() == KGResult.KGResultCode.MESSAGE_SETTING_DISABLE) {
                // The recipient set to unsubscribe.
            } else if (result.getCode() == KGResult.KGResultCode.EXCEED_DAILY_USAGE) {
                // Occurs when one day exceeds a day's quota (regardless of recipient) that can be sent for a specific app.
            } else if (result.getCode() == KGResult.KGResultCode.EXCEED_MONTHLY_USAGE) {
                // Occurs when one month exceeds a month's quota that a specific person can send to a particular app.
            } else {
                // Other errors...
            }
        }
    }
});

iOS

#import <KakaoGame/KakaoGame.h>
// [TODO] Get Kakao profile information from invitable friends list.
KGKakaoProfile *kakaoProfile; // Kakao profile (KGKakaoProfile Object)
// [TODO] Set invitation message template ID.
NSString *templateId = @"1679";
// [TODO] Add the required arguments to the invitation message.
NSDictionary* argumentDic = @{@"name" : @"Nickname", @"iphoneMarketParam" : @"test", @"iphoneExecParam" : @"test", @"sender_name" : @"iOSTester", @"invitation_event_id" : @(29)};
 
// Send an invitation message to KakaoTalk.
//invitation_event_id:  Add only for compensated invitations
[KGKakaoTalkMessage sendNewInviteMessageWithKakaoProfile:kakaoProfile
                                            templateId:templateId
                                          argumentDic:argumentDic
                                    completionHandler:^(NSError *error) {
    if (IS_SUCCESS(error) == YES)
    {
        // Send invitation message to KakaoTalk succeeded.
    }
    else
    {
        // Failed to send invitation message to KakaoTalk.
     
        if (error.code == KGErrorMessageSettingDisabled)
        {
            // The recipient set to unsubscribe.
        }
        else if (error.code == KGErrorExceedDailyUsage)
        {
            // Occurs when one day exceeds a day's quota (regardless of recipient) that can be sent for a specific app.
        }
        else if (error.code == KGErrorExceedMonthlyUsage)
        {
            // Occurs when one month exceeds a month's quota that a specific person can send to a particular app.
        }
        else if (error.code == KGErrorNotKakaoTalkUser)
        {
            // The user is not a KakaoTalk user.
        }
        else
        {
            // Other errors...
        }
    }
}];

 

  • 레이블 없음