GPGS2 마이그레이션 기능

고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.

커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.

문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.

  • 뒤끝 SDK 버전 : 5.11.6
  • 프로젝트명 : shoopang

GPGS 2를 사용하면 마이그레이션 기능(커스텀 → 구글 계정)을 사용하지 못하는건가요?
불가능 하다면
마이그레이션 기능을 사용하려면 구글SDK를 사용해야하는지,
만약 GPGS 2 기능에 마이그레이션 기능이 없는데 이후 패치에 추가 예정인지 알려주시면 감사하겠습니다.

안녕하세요 개발자님,
GPGS V2의 경우도 동일하게 커스텀 계정에서 페더레이션 계정으로 전환이 가능합니다.

  1. Google Play Game Service를 통해 구글 계정으로 로그인
  2. 구글 Auth Code 획득
  3. 이 구글 Access Code를 Backend.BMember.GetGPGS2AccessToken() 함수에 사용
  4. 구글 액세스 토큰이 발급
  5. 구글 액세스 토큰을 이용해 Backend.BMember.AuthorizeFederation(“accessToken”, FederationType.GPGS2) 호출

위와같은 GPGS V2 로그인 과정에서 5번 과정의 AuthorizeFederation 함수 대신
ChangeCustomToFederation 함수를 이용해 호출을 진행해주시면 됩니다. :D

개발자문서에도 해당 내용이 반영될 수 있도록 하겠습니다.
감사합니다.

답변 감사합니다. :P

private string _accessToken = "";
public void LoginGPGS()
{
    PlayGamesPlatform.Instance.Authenticate(RequestAccessToken);
}
internal void RequestAccessToken(SignInStatus status)
{
    if (status == SignInStatus.Success)
    {
        GetAccessCode();
    }
    else
    {
        _toastUI.LoginFailed();
    }
}

private void GetAccessCode()
{
    PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ true,
    (code) =>
    {
        Backend.BMember.GetGPGS2AccessToken(code, googleCallback =>
        {
            if (googleCallback.IsSuccess())
            {
                _accessToken = googleCallback.GetReturnValuetoJSON()["access_token"].ToString();
                ChangeToFederation();
            }
            else
            {
                _toastUI.LoginFailed();
            }
        });
    });
}

// 페데레이션 전환
private void ChangeToFederation()
{
    Backend.BMember.ChangeCustomToFederation(_accessToken, FederationType.GPGS2, callback => {

        if (callback.IsSuccess())
        {
            _toastUI.LoginSuccess();
            _userDataSystem.GoogleLogIn();
            gameObject.SetActive(false);
        }
        else
        {
            switch (callback.GetStatusCode())
            {
                case "409":
                    DuplicationCreateIDError();
                    break;
                default:
                    _toastUI.LoginFailed();
                    break;
            }
        }
    });
}

해당 코드로 진행하면, 튕기는 오류가 생기는데 혹시 코드적으로 문제가 생겼는지 지적 해주실 수 있을까요?

안녕하세요 개발자님,
코드상으로는 이상은 확인되지 않고 있으며
관련하여 프로젝트의 호출내역 확인 시 아래와 같이 에러가 다수 발생한 내역이 확인됩니다.

이미 Federation 계정으로 가입된 계정에 커스텀 아이디 변경을 시도한 경우
statusCode : 409
errorCode : DuplicatedParameterException
message : Duplicated federationId, 중복된 federationId 입니다

참고하여 확인해 주시면 감사하겠습니다.

private void ChangeToFederation()
{
    Backend.BMember.ChangeCustomToFederation(_accessToken, FederationType.GPGS2, callback => {

        if (callback.IsSuccess())
        {
            _toastUI.LoginSuccess();
            _userDataSystem.GoogleLogIn();
            gameObject.SetActive(false);
        }
        if (!callback.IsSuccess())
        {
            switch (callback.GetStatusCode())
            {
                case "409":
                    DuplicationCreateIDError();
                    break;
                default:
                    _toastUI.LoginFailed();
                    break;
            }
        }
    });
}

실제로 페더레이션 성공(게스트 → 구글)을 하여 콘솔에 유저 아이디가 a_~~~ 으로 시작하는 계정으로 생성되는 것 까지 확인하였으나, 해당 코드에서 볼 수 있는 if (callback.IsSuccess())콜백을 실제로 받지 않고 계정만 생성되는 것을 확인했습니다. 혹시 버그 라던가, 오류 내용이 나와있으면, 어떤 내용으로 오류가 났는지 답변 부탁드리겠습니다.

콘솔 조회 미동의로 에러 기록만을 확인하여 제공해드리는 점 양해부탁드립니다.

확인 시 3월 6일에는 아래 에러가 다수 발생한 이력이 확인되며

이미 Federation 계정으로 가입된 계정에 커스텀 아이디 변경을 시도한 경우
statusCode : 409
errorCode : DuplicatedParameterException
message : Duplicated federationId, 중복된 federationId 입니다

3월 7일에는 아래 에러가 다수 발생한 이력이 확인됩니다.

이미 ChangeCustomToFederation 완료되었는데 다시 시도한 경우
statusCode : 400
errorCode : BadParameterException
message : bad type, 잘못된 type 입니다