Result API 고도화
로그인(signIn)을 진행하면서 오류가 발생한다고 가정해봅시다. 기존에는 에러코드 INVALID_PARAM으로만 상황을 파악하고, signIn에 대한 오류를 판단해야 했습니다. 여기서 Result API 고도화를 도입하면 어떻게 달라질까요? 예시로 언급한 상황에서 발생할 수 있는 오류에 대한 값이 code로 전달되면서 값, 부가 메시지를 활용해 오류 상황을 정확하게 파악할 수 있습니다. 아래 예제와 환경별 API 코드에서 자세히 알아보세요.
예제 코드
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 |
AuthV4.signIn(providerType, new AuthV4.AuthV4SignInListener() { @Override public void onAuthV4SignIn(ResultAPI result, AuthV4.PlayerInfo playerInfo) { // AS-IS: HIVE SDK 4.6.0 미만 if (result.errorCode == ResultAPI.ErrorCode.INVALID_PARAM) { // 실패 사유: 명확하지 않음 } // TO-BE: HIVE SDK 4.6.0 이상 if (result.code == ResultAPI.Code.AuthV4AlreadyAuthorized) { // 실패 사유: 사용자가 이미 SignIn 되어 있는 상태 }else if(result.code == ResultAPI.Code.AuthV4InProgressSignIn) { // 실패 사유: SignIn 과정이 이미 진행중 } // or if (result.isSuccess()) { // 성공처리 } else { // 실패처리 switch( result.code ) { case ResultAPI.Code.AuthV4AlreadyAuthorized:// 실패 사유: 사용자가 이미 SignIn 되어 있는 상태 case ResultAPI.Code.AuthV4InProgressSignIn:// 실패 사유: SignIn 과정이 이미 진행중 { // 알려진 사유에 대한 처리 진행 break; } default: { // 기타 다른 사유에 대하여 result.code를 출력 showDialog(result.code, result.message); } } } }); |