콘텐츠로 이동

Result API code

Result API 고도화

로그인(signIn)을 진행하면서 오류가 발생한다고 가정해봅시다. 기존에는 에러코드 INVALID_PARAM으로만 상황을 파악하고, signIn에 대한 오류를 판단해야 했습니다. 여기서 Result API 고도화를 도입하면 어떻게 달라질까요? 예시로 언급한 상황에서 발생할 수 있는 오류에 대한 값이 code로 전달되면서 값, 부가 메시지를 활용해 오류 상황을 정확하게 파악할 수 있습니다. 아래 예제와 환경별 API 코드에서 자세히 알아보세요.

예제 코드

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);
            }
        }
    }
});