PlayGamesPlatform.Instance.localUser.authenticated

  • 뒤끝 SDK 버전 : 5.8.0.

gpgs 로그인이 예전에는 잘 됐던 것 같은데…
게스트로그인으로 쭉 개발하다가 gpgs로 해보려고 하니…
PlayGamesPlatform.Instance.localUser.authenticated 이 부분부터 안되네요…
Social.localUser.Authenticate((bool success) 이 부분도 false가 뜹니다.
gpgs인증 예제에서 혹시 놓친게 있나 싶어서 몇 번을 반복해서 찬찬히 다시 살펴봤는데 특이점을 못 찾았습니다.
다른 점이 있다면, 구글 플레이 콘솔에서 Play 게임즈 서비스 - 설정 및 관리 - 테스터 탭에서
출시 트랙 추가가 안 되네요… 이것도 왜 추가가 안되는지 이유를 모르겠습니다.
혹시 이것 때문에 안되는 건지 아니면 다른 이유가 있는 건지 잘 모르겠어요 ㅠㅠ

  • 유니티, 핸드폰 등에서 테스트 하고 있습니다.
  • 문의게시판에서 테스터가 세군데 일치해야 한다고 해서 내부테스터, Play게임즈 테스터, 구글클라우드플랫폼 테스터도 두명씩 똑같이 입력했어요.
  • Google Play Games Services Plugin도 10.14. 버전입니다.

며칠 머리싸매다가 답이 안보여서 문의합니다!

public string GetTokens()
    {
        if (PlayGamesPlatform.Instance.localUser.authenticated)
        {
            // 유저 토큰 받기 첫 번째 방법
            string _IDtoken = PlayGamesPlatform.Instance.GetIdToken();
            Debug.Log("유저 토큰 : " +_IDtoken);
            GameManager.GetInstance().AlertText(_IDtoken);
            // 두 번째 방법
            // string _IDtoken2 = ((PlayGamesLocalUser)Social.localUser).GetIdToken();
            // Debug.Log("유저 토큰 : " + _IDtoken2);
            // GameManager.GetInstance().SuccessText(_IDtoken2);
            return _IDtoken;
        }
        else
        {
            //PlayGamesPlatform.Instance.localUser.authenticated :  fail
            Debug.Log("현재 구글로그인을 할 수 없는 상태입니다. (인터넷 상태를 확인해주세요)");
            GameManager.GetInstance().AlertText("현재 구글로그인을 할 수 없는 상태입니다. (인터넷 상태를 확인해주세요)");
            return null;
        }
    }
public void OnClickGPGSLogin()
    {
        Debug.LogWarning("OnClickGPGSLogin 클릭");
        // 이미 로그인 된 경우
        if (Social.localUser.authenticated == true)
        {
            BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
        }
        else
        {
            Debug.LogWarning("로그인 되어 있지 않음.");
            Social.localUser.Authenticate((bool success) =>
            {
                Debug.Log("success authenticate = " + success);

                // 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입 요청
                BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
                if (success)
                {
                    Debug.LogWarning("구글 로그인에 성공했습니다");
                    GameManager.GetInstance().SuccessText("구글 로그인에 성공했습니다");
                    //유저의 닉네임이 있는지 확인
                    string nickName = Backend.UserNickName;
                    Debug.Log("nickName: " + nickName);
                    if (nickName == "")
                    {
                        Debug.LogWarning("닉네임부터 설정해야 합니다.");
                        BackendInitialize.GetInstance().preSceneUIManager.NicknameScreen();
                    }
                    else
                    {
                        Debug.LogWarning("자동 로그인에 성공했습니다");
                        BackendInitialize.GetInstance().preSceneUIManager.ReadyToStart();
                    }
                }
                else
                {
                    // 로그인 실패
                    switch (BRO.GetStatusCode())
                    {
                        case "200":
                            Debug.Log("이미 회원가입된 회원");
                            GameManager.GetInstance().AlertText("이미 회원가입된 회원");
                            break;
                        case "403":
                            GameManager.GetInstance().AlertText("차단된 회원, 사유: " + BRO.GetErrorCode());
                            Debug.Log("차단된 회원, 사유: " + BRO.GetErrorCode());
                            break;
                        default:
                            GameManager.GetInstance().AlertText("서버 공통 에러: " + BRO.GetMessage());
                            Debug.Log("서버 공통 에러: " + BRO.GetMessage());
                            Debug.Log("서버 공통 에러: " + BRO.GetErrorCode());
                            break;
                    }
                    return;
                }
            });
        }
    }
  • 에러 코드 :

현재 구글로그인을 할 수 없는 상태입니다. (인터넷 상태를 확인해주세요)
서버 공통 에러: undefined access_token, access_token을(를) 확인할 수 없습니다
서버 공통 에러: UndefinedParameterException

  • 에러 메시지 :

안녕하세요 개발자님
문의하신 내용은 구글의 로그인에 대한 내용이기에 정확하게 답변드리기 어려움이 있습니다.

다만 구글 설정 또는 유니티의 설정이 잘못되어 있어 발생할 경우가 높습니다.
다음 안내드리는 내용들을 다시 한번 확인해 주시고,
해결되지 않을 경우 GPGS와 관련된 문의는 구글 콘솔 개발 지원 문의로 문의하여 주시면 감사하겠습니다.

  1. 테스트중인 기기가 모바일 안드로이드인지
  2. 구글 클라우드 플랫폼에 테스트 사용자가 정상적으로 등록되어 있는지
  3. 구글 플레이 콘솔 내에 등록된 테스트 사용자가 1의 사용자와 동일한지
  4. 구글 플레이 콘솔 > Play 게임 서비스에 등록된 사용자 인증 정보에 2개의 OAuth 클라이언트가 등록되어 있는지
  5. 유니티에 등록한 구글 플레이 콘솔 내에 정보들(Web Client, 리소스)이 올바른지

추가적으로 위의 방법들이 모두 효과가 없을 경우 구글 클라우드 플랫폼 > 해당 프로젝트 > OAuth 동의 화면 > 게시 상태 > 테스트의 "앱 게시"를 눌러 게시해주시기 바랍니다.

감사합니다.

감사합니다. 우선 답변에 해당되는 내용은 전부 확인 해본 상태이지만…
한 번 더 차근차근 해봐야겠네요 ㅠㅠ
원인을 모르니 너무 답답하네요ㅠㅠ ㅎㅎ

해결했습니다!! 구글클라우드플랫폼에 사용자 인증 정보 입력할 때 패키지 명에 대소문자가 하나 잘못 들어가있었네요 ㅠㅠ

좋아요 1