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