Unity3d:C2SModule.Social.Initialize
public static bool C2SModule.Social.Initialize(C2SModule.Parameter arg, out C2SModule.Error error);
public static bool C2SModule.Social.Initialize(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
public static bool C2SModule.Social.Initialize(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
Overview
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
public static void Initialize() { C2SModule.Social.SetCommonResultDelegate(ResultDelegate); C2SModule.Parameter arg = new C2SModule.Parameter (); arg ["showLog"] = true; arg ["useSandbox"] = true; arg ["appId"] = "사용할 앱아이디를 넣어줍니다. 설정하지 않을 시 프로젝트에 설정된 값으로 사용합니다."; arg ["permissionWriteExternalStorage"] = true; arg ["serverId"] = "asia"; //백오피스 월드관리에 등록된 내용을 서버군에 맞춰 넣어 주어야 한다. arg ["gameLanguage"] = "ko"; //식별자 규칙에 따른 게임언어를 넣어주어야 한다. C2SModule.Parameter argSns = new C2SModule.Parameter (); arg ["Sns"] = argSns; C2SModule.Parameter argInapp = new C2SModule.Parameter (); List pidList = new List (); #if UNITY_ANDROID pidList.Add ("com.gamevilusa.sampleProject.android.google.global.normal.100SP"); #elif UNITY_IPHONE pidList.Add ("com.gamevilusa.sampleProject.ios.apple.global.normal.100SP"); #endif argInapp ["pidList"] = pidList; arg ["Inapp"] = argInapp; C2SModule.Parameter argTracking = new C2SModule.Parameter(); //============ Adjust Setting =================// // Adjust는 Unity 프로젝트 인스펙터에서 설정할 수 있습니다.// //============ Singular Setting =================// C2SModule.Parameter argSingularEventKey = new C2SModule.Parameter(); argSingularEventKey["Install"] = "Install"; argSingularEventKey["Update"] = "Update"; argSingularEventKey["Purchase"] = "Purchase"; argSingularEventKey["TutorialComplete"] = "TutorialComplete"; C2SModule.Parameter argSingularSetting = new C2SModule.Parameter(); argSingularSetting["apiKey"] = "com2ususa_dev_1234567"; argSingularSetting["secretKey"] = "9b7ff73a0fc13c6c9397a9881abc1234"; argSingularSetting["Matching"] = argSingularEventKey; argTracking["Singular" = argSingularSetting; arg["Tracking"] = argTracking; C2SModule.Parameter argPush = new C2SModule.Parameter (); // argPush ["useThirdPartyPush"] = true; <= JPUSH 또는 아마존 푸시를 사용할 경우에만 활성화 arg ["Push"] = argPush; C2SModule.Parameter argPromotion = new C2SModule.Parameter (); argPromotion ["showLog"] = true; arg ["Promotion"] = argPromotion; C2SModule.Error error; if(!C2SModule.Social.Initialize (arg, out error)) { Log (error); } } [result] static void ResultDelegate(Api api, Parameter arg, Error error) { switch(api) { case Api.Social_Initialize: // "autoLoginType" 이라는 키 가 존재 한다면 게스트 또는 Hive 계정으로 접속 했던 유저 if (arg.ContainsKey("autoLoginType")) { string authType = arg["autoLoginType"] as string; // "autoLoginType" 의 value가 "platform" 이면 Hive 계정으로 접속했었던 유저 if(null != authType && authType.Equals("platform")) { C2SModule.Error error3; // Hive 계정으로 자동 로그인 한다. if(!C2SModule.Sns.Login (null, out error)) { ... } } // "autoLoginType" 의 값이 "guest" 이면 guest 계정으로 접속했었던 유저 else if(null != authType && authType.Equals("guest")) { C2SModule.Parameter arg2 = new C2SModule.Parameter (); arg2 ["type"] = "guest"; C2SModule.Error error2; // guest 계정으로 로그인 한다. if(!C2SModule.Sns.Login (arg2, out error2)) { ... } } else if(null != authType && authType.Equals("authorized")) { // 자동 로그인이 불가능한 상황 // Hive 유저의 로그아웃 후 앱 종료 후 재 실행 시 상황이 이에 해당된다. // 게스트 로그인 버튼 노출 없이 Hive 로그인 버튼만 노출 한다. } else { // "autoLoginType" 키에 대한 값이 없을 경우 // 처음 설치 후 실행 시 상황이 이에 해당된다. // 게스트 로그인 버튼과 Hive 로그인 버튼 둘 다 노출 한다. } } // "autoLoginType" 이라는 키 가 존재 하지 않는다면 한번도 로그인을 하지 않은 유저이거나 재설치한 유저 else { // "autoLoginType" 키가 없을 경우 // 처음 설치 후 실행 시 상황이 이에 해당된다. if(arg["isAuthorized"]==true){ // Hive 유저로 로그인한적이 있다면 // Hive 로그인 버튼만 출력한다. } else{ // Hive 유저로 로그인한적이 없다면 // GUEST Login 버튼과 Hive 로그인 버튼 둘 다 노출 한다. } } } |
Unity3d:C2SModule.Social.SetGameInfo
public static bool C2SModule.Social.SetGameInfo(C2SModule.Parameter arg, out C2SModule.Error error);
public static bool C2SModule.Social.SetGameInfo(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
public static bool C2SModule.Social.SetGameInfo(C2SModule.Parameter arg, out C2SModule.Error error,
C2SModule.CompletionHandler completionHandler);
Overview
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백은 없음.
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백은 없음.
1 2 3 4 5 |
C2SModule.Parameter arg = new C2SModule.Parameter (); arg ["gameLanguage"] = "ko"; // 게임 언어 설정 arg ["serverId"] = "KR"; // 서버 아이디 설정 C2SModule.Error error; if(!C2SModule.Social.SetGameInfo (arg, out error)){ // Error 시 처리 } |
Unreal:HiveSDKUESocial_Initialize
void HiveSDKUESocial_Initialize(FString fstrJson, CommonResultDelegate delegate);
Overview
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 |
UE_LOG(LogTemp, Warning, TEXT( "FHiveSDKModule::C2S_Initialize() called")); TSharedPtr arg = MakeShareable(new FJsonObject); //TODO change APPID arg->SetStringField(TEXT("appId"), hiveSampleAppBundleID); arg->SetBoolField(TEXT("showLog"),true); arg->SetBoolField(TEXT("useSandbox"),bUseSandbox); TSharedPtr argInapp = MakeShareable(new FJsonObject); argInapp->SetBoolField(TEXT("showLog"),true); //TODO change Product List (Inapp List) TArray<TSharedPtr> inappList; TSharedPtr Value; #if PLATFORM_IOS Value = MakeShareable(new FJsonValueString(TEXT("com.com2us.platformsample.normal.freefull.apple. global.ios.universal.item01"))); inappList.Add(Value); Value = MakeShareable(new FJsonValueString(TEXT("com.com2us.platformsample.normal.freefull.apple. global.ios.universal.item02"))); inappList.Add(Value); Value = MakeShareable(new FJsonValueString(TEXT("com.com2us.platformsample.normal.freefull.apple. global.ios.universal.item03"))); inappList.Add(Value); #elif PLATFORM_ANDROID //distribution build 후 결제 테스트 // com.com2us.misample.normal.freefull.google.global.android.common Value = MakeShareable(new FJsonValueString(TEXT("u1"))); inappList.Add(Value); Value = MakeShareable(new FJsonValueString(TEXT("m1"))); inappList.Add(Value); #endif argInapp->SetArrayField(TEXT("pidList"),inappList); TSharedPtr argSns = MakeShareable(new FJsonObject); TSharedPtr argPush = MakeShareable(new FJsonObject); TSharedPtr argPromotion = MakeShareable(new FJsonObject); argPromotion->SetBoolField(TEXT("showLog"),true); arg->SetObjectField(TEXT("Sns"),argSns); arg->SetObjectField(TEXT("Inapp"),argInapp); arg->SetObjectField(TEXT("Push"),argPush); arg->SetObjectField(TEXT("Promotion"),argPromotion); TSharedPtr argTrackingModule = MakeShareable(new FJsonObject); TSharedPtr argPartyTrackEventKey = MakeShareable(new FJsonObject); argPartyTrackEventKey->SetStringField(TEXT("Purchase"), TEXT("Purchase")); argPartyTrackEventKey->SetStringField(TEXT("TutorialComplete"), TEXT("TutorialComplete")); TSharedPtr argAdjustEventKey = MakeShareable(new FJsonObject); argAdjustEventKey->SetStringField(TEXT("Purchase"), TEXT("6irgbf")); argAdjustEventKey->SetStringField(TEXT("TutorialComplete"), TEXT("1ispq3")); argAdjustEventKey->SetStringField(TEXT("Update"), TEXT("7e5a41")); // //============ PartyTrack Setting =================// TSharedPtr argPartyTrackSetting = MakeShareable(new FJsonObject); argPartyTrackSetting->SetNumberField(TEXT("appID"),5726); argPartyTrackSetting->SetStringField(TEXT("appKey"), TEXT("088230b31b8d23c5b67eba5aa0513757")); argPartyTrackSetting->SetBoolField(TEXT("optimizeFacebookAd"), false); argPartyTrackSetting->SetObjectField(TEXT("Matching"), argPartyTrackEventKey); argTrackingModule->SetObjectField(TEXT("Partytrack"), argPartyTrackSetting); // //============ Adjust Setting =================// TSharedPtr argAdjustSetting = MakeShareable(new FJsonObject); argAdjustSetting->SetStringField(TEXT("appToken"), TEXT("bqenxb6rpf7l")); argAdjustSetting->SetObjectField(TEXT("Matching"), argAdjustEventKey); argTrackingModule->SetObjectField(TEXT("Adjust"), argAdjustSetting); argTrackingModule->SetBoolField(TEXT("debugMode"), true); // //============ Singular Setting =================// TSharedPtr argSingularEventKey = MakeShareable(new FJsonObject); argSingularEventKey>SetStringField(TEXT("Install"), TEXT("Install")); argSingularEventKey>SetStringField(TEXT("Update"), TEXT("Update")); argSingularEventKey>SetStringField(TEXT("Purchase"), TEXT("Purchase")); argSingularEventKey>SetStringField(TEXT("TutorialComplete"), TEXT("TutorialComplete")); TSharedPtr argSingularSetting = MakeShareable(new FJsonObject); argSingularSetting>SetStringField(TEXT("apiKey"), TEXT("com2ususa_dev_1234567f")); argSingularSetting>SetStringField(TEXT("secretKey"), TEXT("9b7ff73a0fc13c6c9397a9881abc1234")); argSingularSetting>SetObjectField(TEXT("Matching"), argSingularEventKey); argTrackingModule->SetObjectField(TEXT("Singular"), argSingularSetting); arg->SetObjectField(TEXT("Tracking"), argTrackingModule); FString OutputString; TSharedRef< TJsonWriter<> > Writer = TJsonWriterFactory<>::Create(&OutputString); FJsonSerializer::Serialize(arg.ToSharedRef(), Writer); UE_LOG(LogTemp, Warning, TEXT( " Init Json :.. %s"), *OutputString); #if PLATFORM_IOS || PLATFORM_ANDROID FHiveSDKModule::Get().HiveSDKUESocial_Initialize(OutputString, UHiveGameSampleInstance::ResultDelegate); #endif [Result] ============================================ #if PLATFORM_IOS || PLATFORM_ANDROID void MYGAMECLASS::ResultDelegate(C2SModuleApi api, const char* json, C2SModuleErrorCode code, const char* message) { UE_LOG(LogTemp, Warning, TEXT("====>>>> ResultDelegate (%d)"), api); UE_LOG(LogTemp, Warning, TEXT("====>>>> error code : %d"), code); if (json != NULL) { UE_LOG(LogTemp, Warning, TEXT("====>>>> ResultDelegate (%s)"), ANSI_TO_TCHAR(json)); } if (message != NULL) { UE_LOG(LogTemp, Warning, TEXT("====>>>> ResultDelegate (%s)"), ANSI_TO_TCHAR(message)); } TSharedPtr arg; TSharedRef< TJsonReader<> > reader = TJsonReaderFactory<>::Create( json ); bool isAuthorized = false; FString did; FString vid; switch(api) { /** 소셜 초기화 */ case C2SModuleApi_SocialInitialize: { if ( FJsonSerializer::Deserialize( reader, arg ) == false ){ if (json != NULL){ UE_LOG(LogTemp, Warning, TEXT("====>>>> parse failed : (%s)"), json ); } else { UE_LOG(LogTemp, Warning, TEXT("json Empty.(Null)")); } return; } isAuthorized = arg->GetBoolField(TEXT("isAuthorized")); did = arg->GetStringField(TEXT("did")); UE_LOG(LogTemp, Warning, TEXT( "====>>>> isAuthorized : (%d)"), isAuthorized); UE_LOG(LogTemp, Warning, TEXT( "====>>>> did : (%s)"), *did); if( arg->HasField(TEXT("autoLoginType") ) ) { FString authType = arg->GetStringField(TEXT("autoLoginType")); UE_LOG(LogTemp, Warning, TEXT( "====>>>> authType : (%s)"), *authType); if( !authType.IsEmpty() && authType.Compare("platform") == 0 ) { UE_LOG(LogTemp, Warning, TEXT( "====>>>> Platform Login" )); C2SModule_Cocos2dx::C2SModuleError error2; if( ::C2SModuleSns_Login( (char*)NULL, &error2 ) == false ) { UE_LOG(LogTemp, Warning, TEXT( "====>>>> Platform Login error (%s)"), error2.get()->GetMessage() ); } } else if( !authType.IsEmpty() && authType.Compare("guest") == 0 ) { UE_LOG(LogTemp, Warning, TEXT( "====>>>> Guest Login" )); C2SModule_Cocos2dx::C2SModuleError error3; TSharedPtr argGuestLogin = MakeShareable(new FJsonObject); argGuestLogin->SetStringField(TEXT("type"), TEXT("guest")); FString strJSON; TSharedRef< TJsonWriter<> > Writer = TJsonWriterFactory<>::Create(&strJSON); FJsonSerializer::Serialize(argGuestLogin.ToSharedRef(), Writer); if( ::C2SModuleSns_Login( TCHAR_TO_ANSI(*strJSON), &error3 ) == false ) { UE_LOG(LogTemp, Warning, TEXT( "====>>>> Guest Login error (%s)"), error3.get()->GetMessage() ); } } else if( !authType.IsEmpty() && authType.Compare("authorized") == 0 ) { UE_LOG(LogTemp, Warning, TEXT( "====>>>> UI : need changeMenu Login Button User")); } else { //로그인을 한 번도 하지 않은 유저 UE_LOG(LogTemp, Warning, TEXT( "====>>>> UI : need changeMenu Login Button Both")); } } else { UE_LOG(LogTemp, Warning, TEXT( "====>>>> not autoLogin ")); if(!isAuthorized) { UE_LOG(LogTemp, Warning, TEXT( "====>>>> UI : Guest Login + Hive Login")); } else { UE_LOG(LogTemp, Warning, TEXT( "====>>>> UI : Hive Login UI")); } } } break; } } #endif |
Unreal:HiveSDKUESocial_SetGameInfo
void HiveSDKUESocial_SetGameInfo(FString fstrJson);
Overview
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백 없음.
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백 없음.
1 2 3 4 5 6 7 8 9 10 |
TSharedPtr arg = MakeShareable(new FJsonObject); arg->SetStringField(TEXT("gameLanguage"), TEXT("ko")); // 게임 언어 설정 arg->SetStringField(TEXT("serverId"), TEXT("KR")); // 서버 아이디 설정 FString OutputString; TSharedRef< TJsonWriter<TCHAR, TCondensedJsonPrintPolicy< TCHAR >> > Writer = TJsonWriterFactory<TCHAR, TCondensedJsonPrintPolicy< TCHAR >>::Create(&OutputString); FJsonSerializer::Serialize(arg.ToSharedRef(), Writer); FHiveSDKModule::Get().HiveSDKUESocial_SetGameInfo(OutputString); |
IOS:C2SModuleSocial Initialize
+(BOOL)Initialize:(id)arg error:(NSError**)error;
Overview
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
// IAP 상품 등록과 상용 서버, 테스트 서버 여부를 설정한다 NSMutableArray *pidList = [[NSMutableArray alloc] init]; [pidList addObject:@"com.pid.pid"]; //임의의 상품 정보이다. NSDictionary* argInapp = @{@"showLog":@true, @"pidList":pidList}; NSDictionary* argPush = @{@"showLog":@true}; NSDictionary* argPromotion = @{@"showLog":@true}; //Tracker 초기화 NSDictionary& AdjustAppSecretSetting = @{ @"secretId":@"1", @"info1":@"12345678", @"info2":@"87654321", @"info3":@"1357901", @"info4":@"2468024" }; NSDictionary* Adjust = @{ @"appToken":USER_APP_TOKEN, //Adjust 발급 @"Matching":@{ @"Update":USER_EVENT_KEY, //Adjust 발급 @"Purchase":USER_EVENT_KEY, //Adjust 발급 @"TutorialComplete":USER_EVENT_KEY //Adjust 발급 @"AppSecretInfo":AdjustAppSecretSetting //Adjust 발급 } }; NSDictionary* Partytrack = @{ @"appID":USER_APP_ID, //Partytrack 발급 @"appKey":USER_APP_KEY, //Partytrack 발급 @"optimizeFacebookAd":IS_FACEBOOK_OPTIOMIZE, //필요할 경우 @true 셋팅 (Partytrack 페이스북 최적화 설정) @"Matching":@{ @"TutorialComplete":USER_EVENT_KEY //Partytrack 발급 } }; NSDictionary& SingularEventKey = @{ @"Install":@"Install", // Singular에서 등록한 이벤트 @"Update":@"Update", // Singular에서 등록한 이벤트 @"Purchase":@"Purchase", // Singular에서 등록한 이벤트 @"TutorialComplete":@"TutorialComplete" // Singular에서 등록한 이벤트 }; NSDictionary& Singular = @{ @"apiKey":@"com2ususa_dev_1234567f", // Singular에서 발급 @"sercetKey":@"9b7ff73a0fc13c6c9397a9881abc1234", // Singular에서 발급 @"Matching":SingularEventKey // Singular에서 등록한 이벤트 }; NSDictionary* argTracking = @{ @"debugMode":IS_DEBUG_MODE, //추적 모듈을 디버그 모드로 사용할지 설정 @true or @false //각 모듈을 이름별로 셋팅해준다. @"Adjust":Adjust, @"Partytrack":Partytrack @"Singular":Singular }; NSDictionary* argSocial = @{ @"checkAgreement":@true, @"showLog":@true, @"appId":@"{사용할 앱아이디를 넣어준다. 설정하지 않을 시 프로젝트에 설정된 값으로 사용한다.}", @"useSandbox":@true, @"Inapp":argInapp, @"Push":argPush, @"romotion":argPromotion, @"serverId":@"asia", //백오피스 월드관리에 등록된 내용을 서버군에 맞춰 넣어 주어야 한다. @"gameLanguage":@"ko", //식별자 규칙에 따른 게임 언어를 넣어주어야 한다. @"Tracking":argTracking }; NSError* error; //Initialize함수 호출 [C2SModuleSocial Initialize:argSocial error:&error completionHandler:^(NSDictionary *resultArg, NSError* resultError) { if(resultError == nil) { //success initialize; //autoLoginType에 값이 없으면 오토 로그인 불가 NSString* autoLogin = resultArg[@"autoLoginType"]; BOOL authorized = [autoLogin isEqualToString:@"authorized"]; if(autoLogin == nil || authorized == YES) { if( authorized == YES ) //Hive 로그인을 한적이 있다면 게스트 로그인 버튼은 노출하면 안되므로 숨기는 코드를 추가한다. //게스트 로그인 불가능하며 유저가 로그인 할 수 있도록 유도처리 한다. else // Hive 로그인을 한 적이 없다면 게스트 로그인과 Hive 로그인 버튼을 동시에 노출합니다. } else{ if([autoLogin isEqualToString:@"guest"] == YES) { //게스트 유저로 자동 로그인이 가능합니다. } else// if([autoLogin isEqualToString:@"real"] == YES) { //정식 유저로 자동 로그인이 가능합니다. } } } }]; |
IOS:C2SModuleSocial SetGameInfo
+(BOOL)Show:(id)arg error:(NSError**)error;
Overview
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백 없음.
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백 없음.
1 2 3 4 5 6 |
[C2SModuleSocial SetGameInfo:@{@"gameLanguage":@"ko",@"serverId":@"KR"} error:&error completionHandler:^(NSDictionary* resultArg, NSError* resultError) { if (resultError == nil) { //succeed } }]; |
cocos2d-x:C2SModuleSocial_Initialize
bool C2SModuleSocial_Initialize(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
Overview
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
– Hive를 초기화한다.
– 초기화가 완료되면 C2SModuleApi_SocialInitialize 콜백 이외에도 C2SModuleApi_PromotionShow,
C2SModuleApi_InappDescription 콜백이 같이 리턴된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
[c++] ::CommonResultDelegate resultDelegate = SampleProject::ResultDelegate; ::C2SModuleSocial_SetCommonResultDelegate(resultDelegate); // ActiveUser 초기화 Json::Value arg; arg ["showLog"] = true; // 로그 On/Off arg ["useSandbox"] = true; // sandbox 서버 여부 // arg ["appId"] = "com.com2us.sampleproject"; // AppInfo에서 사용하던 appId는 더이상 사용하지 않으며 1.7.0 부터는 appId를 initialize시에 직접 설정할 수 있으며 미입력시 AndroidManifest.xml의 패키지 네임을 appId로 사용하게 됨 arg["permissionWriteExternalStorage"] = true; arg["serverId"] = "asia"; //백오피스 월드관리에 등록된 내용을 서버군에 맞춰 넣어 주어야 한다. arg["gameLanguage"] = "ko"; //식별자 규칙에 맞는 게임 언어를 넣어 주어야 한다. // Hive 설정 Json::Value argSns; arg ["showLog"] = true; // 로그 On/Off // IAP 등록 및 설정 Json::Value argInapp; Json::Value inappList; inappList.append("u1"); argInapp ["pidList"] = inappList; arg ["showLog"] = true; // 로그 On/Off // Push notification 설정 Json::Value argPush; //argPush ["useThirdPartyPush"] = true; // 아마존푸쉬 및 JPush 사용 여부 (사용여부에 따라 각각의 라이브러리를 추가해 주어야 한다. // promotion 설정 Json::Value argPromotion; argPromotion ["showLog"] = true; arg ["Sns"] = argSns; arg ["Inapp"] = argInapp; arg ["Push"] = argPush; arg ["Promotion"] = argPromotion; // Tracking 설정 Json::Value argTrackingModule; // Partytrack 이벤트 정보 등록 Json::Value argPartyTrackEventKey; argPartyTrackEventKey["Purchase"] = "Purchase"; argPartyTrackEventKey["TutorialComplete"] = "TutorialComplete"; // Adjust 이벤트 정보 등록 Json::Value argAdjustEventKey; argAdjustEventKey["Purchase"] = "cny1lg"; argAdjustEventKey["TutorialComplete"] = "7ndx92"; argAdjustEventKey["Update"] = "stzv9n"; // Partytrack 키값 등록 Json::Value argPartyTrackSetting; argPartyTrackSetting ["appID"] = 5725; argPartyTrackSetting ["appKey"] = "ab7b08bdc812dc0c731a846b952a10d3"; argPartyTrackSetting ["optimizeFacebookAd"] = false; // 페이스북 광고 최적화 설정. 필요할 경우 true 셋팅 argPartyTrackSetting ["Matching"] = argPartyTrackEventKey; argTrackingModule["Partytrack"] = argPartyTrackSetting; // Adjust 키값 등록 Json::Value argAdjustSetting; argAdjustSetting ["appToken"] = "hx9gfc2j6nxs"; argAdjustSetting ["Matching"] = argAdjustEventKey; // Adjust App secret 설정 Json::Value argAdjustAppSecretSetting; argAdjustAppSecretSetting["secretId"] = "1"; argAdjustAppSecretSetting["info1"] = "1234567890"; argAdjustAppSecretSetting["info2"] = "9876543210"; argAdjustAppSecretSetting["info3"] = "1357901"; argAdjustAppSecretSetting["info4"] = "24680246"; argAdjustSetting["AppSecretInfo"] = argAdjustAppSecretSetting; argTrackingModule["Adjust"] = argAdjustSetting; // Singular 이벤트 정보 등록 Json::Value argSingularEventKey; argSingularEventKey["Install"] = "Install"; argSingularEventKey["Update"] = "Update"; argSingularEventKey["Purchase"] = "Purchase"; argSingularEventKey["TutorialComplete"] = "TutorialComplete"; // Singular 키값 등록 Json::Value argSingularSetting; argSingularSetting["apiKey"] = "com2ususa_dev_1234567f"; argSingularSetting["secretKey"] = "9b7ff73a0fc13c6c9397a9881abc1234"; argSingularSetting["Matching"] = argSingularEventKey; argTrackingModule["Singular"] = argSingularSetting; argTrackingModule["debugMode"] = true; arg["Tracking"] = argTrackingModule; Json::StyledWriter writer; std::string strJSON = writer.write(arg); C2SModule_Cocos2dx::C2SModuleError error; ::C2SModuleSocial_Initialize(strJSON.c_str(), &error); [result] void SampleProject::ResultDelegate(C2SModuleApi api, const char* json, C2SModuleErrorCode code, const char* message) { CCLog( "====>>>> ResultDelegate (%d)", api); CCLog( "====>>>> ResultDelegate (%s)", json); CCLog( "====>>>> ResultDelegate (%s)", message); CCLog("====>>>> error code : %d", code); Json::Value arg; Json::Reader reader; bool isAuthorized = false; std::string did; std::string vid; switch(api) { /** 소셜 초기화 */ case C2SModuleApi_SocialInitialize: { if( reader.parse(json, arg) == false ) { CCLog( "====>>>> parse failed : (%s)", json ); return; } isAuthorized = arg.get("isAuthorized", true).asBool(); did = arg.get("did","").asString(); CCLog( "====>>>> isAuthorized : (%d)", isAuthorized); CCLog( "====>>>> did : (%s)", did.c_str()); if( arg.isMember("autoLoginType") ) { std::string authType = arg.get("autoLoginType", "").asString(); CCLog( "====>>>> authType : (%s)", authType.c_str()); if( !authType.empty() && authType.compare("platform") == 0 ) { CCLog( "====>>>> Platform Login" ); C2SModule_Cocos2dx::C2SModuleError error2; if( ::C2SModuleSns_Login( (char*)NULL, &error2 ) == false ) { CCLog( "====>>>> Platform Login error (%s)", error2.get()->GetMessage() ); } } else if( !authType.empty() && authType.compare("guest") == 0 ) { CCLog( "====>>>> Guest Login" ); C2SModule_Cocos2dx::C2SModuleError error3; Json::Value argGuestLogin; argGuestLogin["type"] = "guest"; Json::StyledWriter writer; std::string strJSON = writer.write(argGuestLogin); if( ::C2SModuleSns_Login( strJSON.c_str(), &error3 ) == false ) { CCLog( "====>>>> Guest Login error (%s)", error3.get()->GetMessage() ); } } else if( !authType.empty() && authType.compare("authorized") == 0 ) { SampleProject::changeMenu(C2S_MENU_LOGIN_BUTTON_USER); } else { //로그인을 한 번도 하지 않은 유저 SampleProject::changeMenu(C2S_MENU_LOGIN_BUTTON_BOTH); } } else { CCLog( "====>>>> not autoLogin "); if(!isAuthorized) { CCLog("====>>>> UI : Guest Login + Hive Login"); SampleProject::changeMenu(C2S_MENU_LOGIN_BUTTON_BOTH); } else { CCLog("====>>>> UI : Hive Login UI"); SampleProject::changeMenu(C2S_MENU_LOGIN_BUTTON_USER); } } } break; } } |
cocos2d-x:C2SModuleSocial_SetGameInfo
bool C2SModuleSocial_SetGameInfo(const char* pstrJson, C2SModule_Cocos2dx::C2SModuleError* pkError,
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
C2SModule_Cocos2dx::C2SModuleCompletionHandler* completionHandler = NULL);
Overview
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백 없음.
– 게임 언어(gameLanguage)와 서버 아이디(serverId)를 설정한다.
– 별도의 콜백 없음.
1 2 3 4 5 6 7 8 9 |
Json::Value arg; Json::StyledWriter writer; arg["gameLanguage"] = "ko"; // 게임 언어 설정 arg["serverId"] = "KR"; // 서버 아이디 설정 std::string strJSON = writer.write(arg); C2SModule_Cocos2dx::C2SModuleError error; if( ::C2SModuleSocial_SetGameInfo( strJSON.c_str(), &error ) == false ) { CCLog( "====>>>> Social_SetGameInfo error (%s)", error.get()->GetMessage() ); } |