페더레이션 회원가입/로그인 문의

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

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

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

  • 뒤끝 SDK 버전 :
  • 프로젝트명 :
  • 스테이터스 코드 :
  • 에러 코드 :
  • 에러 메시지 :

GPGS 로그인 설정에서 초기 설정을 마치고 스크립트를 작성했습니다.

  1. 설명에 보면 'Google Play Game Services(GPGS)의 ID token 을 받기 위한 PlayGamesClientConfiguration의 default 설정을 custom 설정으로 변경 후, GPGS를 실행합니다.'라는 부분이 있는데요, 이 설정은 어디서 변경하는 것인가요?

  2. 예제 코드를 프로젝트의 구글 로그인 버튼에 붙여넣고, 버튼에 GPGSLogin() 함수를 호출하도록 하고, 에러가 났을 경우 에러 위치를 찾으려 login_error 텍스트를 띄우도록 빌드했지만 빌드 후 버튼을 클릭하면 login_error 텍스트에 아무 반응이 없고 nicknamePanel도 활성화 되지 않습니다.

어떤 부분이 잘못되었나요?

작성한 코드는 다음과 같습니다.

using BackEnd;
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine;
using TMPro;

public class GoogleFederation : MonoBehaviour
{

    [SerializeField] GameObject nicknamePanel;
    [SerializeField] TMP_Text login_error;

    // GPGS 로그인 
    void Start()
    {
        // GPGS 플러그인 설정
        PlayGamesClientConfiguration config = new PlayGamesClientConfiguration
            .Builder()
            .RequestServerAuthCode(false)
            .RequestIdToken()
            .Build();
           // .RequestEmail() // 이메일 권한을 얻고 싶지 않다면 해당 줄(RequestEmail)을 지워주세요.  

        //커스텀 된 정보로 GPGS 초기화
        PlayGamesPlatform.InitializeInstance(config);
        PlayGamesPlatform.DebugLogEnabled = true; // 디버그 로그를 보고 싶지 않다면 false로 바꿔주세요.  
                                                  //GPGS 시작.  
        PlayGamesPlatform.Activate();
    }

    public void GPGSLogin()
    {
        // 이미 로그인 된 경우
        if (Social.localUser.authenticated == true)
        {
            BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
            login_error.text = " 로그인 성공 ";
            nicknamePanel.SetActive(true);
        }
        else
        {
            Social.localUser.Authenticate((bool success) => {
                if (success)
                {
                    // 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입 요청
                    BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");

                    login_error.text = " 로그인 성공! ";

                    nicknamePanel.SetActive(true);
                }
                else
                {
                    // 로그인 실패
                    Debug.Log("Login failed for some reason");
                    login_error.text = " 로그인 실패 ";
                }
            });
        }
    }

    // 구글 토큰 받아옴
    public string GetTokens()
    {
        if (PlayGamesPlatform.Instance.localUser.authenticated)
        {
            // 유저 토큰 받기 첫 번째 방법
            string _IDtoken = PlayGamesPlatform.Instance.GetIdToken();
            // 두 번째 방법
           //  string _IDtoken = ((PlayGamesLocalUser)Social.localUser).GetIdToken();
            return _IDtoken;
        }
        else
        {
            Debug.Log("접속되어 있지 않습니다. PlayGamesPlatform.Instance.localUser.authenticated :  fail");
            login_error.text = " 접속되어 있지 않습니다  ";

            return null;
        }
    }
}

안녕하세요 개발자님.
문의하신 두 가지 사항 답변드립니다.

  1. 초기화 부분은 Start 함수에서 설정됩니다.
    config에서 필요한 권한이나 기능을 추가한 후, GPGS 초기화 함수에 커스텀 한 config를 넣어서 초기화해주시면 됩니다.

  2. 남겨주신 코드 상의 문제점은 없는 것으로 보입니다.
    버튼이 정상 동작하는지 확인을 부탁드리겠습니다.
    더불어 보다 정확한 확인을 위해 문의 시 프로젝트 정보도 함께 기재하여 주시면 감사하겠습니다.