안녕하세요. 뒤끝 문서를 보면서, 게임 실행 시, 구글로그인이 되도록 하였습니다.
구글로그인 성공은 되나, 뒤끝 콘솔 - 게임유저관리에 유저 정보가 생성되질 않습니다.
작동 순서
- 게임 실행 시, GPGSManager에서, GPGS로그인 & 뒤끝 로그인
// Include GPGS namespace
using GooglePlayGames;
using GooglePlayGames.BasicApi;
using UnityEngine.SocialPlatforms;
// Include Backend
using BackEnd;
using UnityEngine;
public class GPGSManager : MonoBehaviour
{
public static GPGSManager instance;
private void Awake()
{
if (instance == null)
{
instance = this;
DontDestroyOnLoad(gameObject);
}
else
Destroy(gameObject);
}
// custome GPGS set and activate
void Start()
{
PlayGamesClientConfiguration config = new PlayGamesClientConfiguration
.Builder()
.RequestServerAuthCode(false)
.RequestEmail()
.RequestIdToken()
.Build();
//커스텀된 정보로 GPGS 초기화
PlayGamesPlatform.InitializeInstance(config);
PlayGamesPlatform.DebugLogEnabled = true;
//GPGS 시작.
PlayGamesPlatform.Activate();
GPGSLogin();
}
// GPGS 로그인
public void GPGSLogin()
{
// 이미 로그인 된 경우
if (Social.localUser.authenticated == true)
{
BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
}
else
{
Social.localUser.Authenticate((bool success) => {
if (success)
{
// 로그인 성공 -> 뒤끝 서버에 획득한 구글 토큰으로 가입요청
BackendReturnObject BRO = Backend.BMember.AuthorizeFederation(GetTokens(), FederationType.Google, "gpgs");
Backend.BMember.UpdateFederationEmail(GetTokens(), FederationType.Google);
Backend.BMember.CheckUserInBackend(GetTokens(), FederationType.Google);
}
else
{
// 로그인 실패
Debug.Log("Login failed for some reason");
}
});
}
Backend.BMember.LoginWithTheBackendToken((callback) =>
{
if (callback.IsSuccess())
{
Debug.Log("자동 로그인에 성공했습니다");
}
});
}
// 구글 토큰 받아옴
public string GetTokens()
{
if (PlayGamesPlatform.Instance.localUser.authenticated)
{
// 유저 토큰 받기 첫번째 방법
string _IDtoken = PlayGamesPlatform.Instance.GetIdToken();
Debug.Log("나의 토근 :" + _IDtoken);
// 두번째 방법
// string _IDtoken = ((PlayGamesLocalUser)Social.localUser).GetIdToken();
return _IDtoken;
}
else
{
Debug.Log("접속되어있지 않습니다. PlayGamesPlatform.Instance.localUser.authenticated : fail");
return null;
}
}
public void OnClickLogin()
{
Backend.BMember.AuthorizeFederation("federationToken", FederationType.Google, "GPGS로 가입함");
}
}
Backend.BMember.LoginWithTheBackendToken((callback) =>
{
if (callback.IsSuccess())
{
Debug.Log(“자동 로그인에 성공했습니다”);
}
}); < 이거 하면 되는거아닌가요?
방안을 제시해주면 정말 감사하겠습니다. 하루내내 해봤는데 제자리걸음이네요.
GetToken()에서 토근값도 찍힙니다.