본문으로 건너뛰기
버전: 5.15.2

GoogleLogin

public void GoogleLogin(bool isCallbackInMainThread, GoogleLoginCallback googleLoginCallback);
public void GoogleLogin(string webClientId, bool isCallbackInMainThread, GoogleLoginCallback googleLoginCallback);

public void GoogleLoginCallback(bool isSuccess, string errorMessage, string token)

파라미터

ValueTypeDescription
webClientIdstring(인스펙터 미설정 시) 구글 클라우드 플랫폼에서 설정한 웹 ClientID
isCallbackInMainThreadbooltrue일 경우, 콜백이 유니티 메인쓰레드에서 작동합니다. false일 경우, 외부쓰레드에서 작동합니다.
googleLoginCallbackGoogleLoginCallback로그인 요청에 대한 성공여부, 에러메시지, 토큰값을 불러오는 콜백 함수
메인쓰레드와 외부쓰레드

유니티에서 외부쓰레드에서 UnityEngine 혹은 UnityEngine.UI로 생성된 오브젝트나 함수를 호출할 경우, Exception이 발생합니다.

메인쓰레드로 콜백을 호출할 경우, 콜백에서 Object를 많이 생성하거나 동기 형식의 뒤끝 함수등의 게임이 잠시 멈추거나 무거운 동작을 할 경우, 크러쉬 현상이 발생할 수 있습니다.

설명

구글 로그인을 시도합니다. 결과는 GoogleLoginCallback 콜백 이벤트를 통해 확인할 수 있습니다.
구글 로그인이 성공한 이후에는 구글 로그인을 호출할 때마다 계정 선택 없이 이전에 선택한 아이디로 로그인이 됩니다.
계정을 다시 선택하고 싶은 경우 아래 TheBackend.ToolKit.GoogleLogin.Android.GoogleSignOut을 호출해야합니다.

Example

public void StartGoogleLogin() {
TheBackend.ToolKit.GoogleLogin.Android.GoogleLogin(true, GoogleLoginCallback);
}

private void GoogleLoginCallback(bool isSuccess, string errorMessage, string token) {
if (isSuccess == false) {
Debug.LogError(errorMessage);
return;
}

Debug.Log("구글 토큰 : " + token);
var bro = Backend.BMember.AuthorizeFederation(token, FederationType.Google);
Debug.Log("페데레이션 로그인 결과 : " + bro);
}

ReturnCase

Success cases

구글 로그인 호출에 성공한 경우
true
errorMessage : "" token :

eyJhbGciOiJSUzI1NiIsImtpZCI6Ijg1ZTU1MTA3NDY2YjdlMjk4MzYxOTljNThjNzU4MWY1YjkyM2JlNDQiLCJ0eXAiOiJKV1QifQ.eyJpc3MiOiJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20iLCJhenAiOiI0NTk2MDkyMzQ5MDAtMGZrdHBlbjlsNzYxZjFnc3RvdTI0a2Z0dXNlcGpvZGIuYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJhdWQiOiI0NTk2MDkyMzQ5MDAtbnZzaW51bDllMnBvMGU4cGk2aWdqNmlvNGNnN3VmMG4uYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJzdWIiOiIxMTcxMTQ5NTAzOTIxNjIzMzA5MjAiLCJlbWFpbCI6InJsYWd1c3RtZDAyMTdAZ21haWwuY29tIiwiZW1haWxfdmVyDSDjksdajfaskljfkjksuYDtmITsirkiLCJwaWN0dXJlIjoiaHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EvQUNnOG9jSXprNWExOVpaQ3MyRmJ3ZG5FV0xGdDZIZUFMRUY4OUF6TF9rbFlaRXQxPXM5Ni1jIiwiZ2l2ZW5fbmFtZSI6Iu2YhOyKuSIsImZhbWlseV9uYW1lIjoi6rmAIiwibG9jYWxlIjoia28iLCJpYXQiOjE3MDY0NDA2MjMsImV4cCI6MTcwNjQ0NDIyM30.hJx5COWQWmMejDFz76b2NxAB3IcYP3obvQ6CGvwCF6oBQG7rqZzlA9YiQhQwpzd0SM6rt-aFPlrpO6yCF8V_sh2yfI784wf1VNzlhtxoajI_LpDmdny1bWlgpHGv3hwC3lL1Wi9tP2CkEfnlfTXnKXKtsPD1KiaQa8tYZnIXDR_MvnE9FtiNA-vGCclUcUdONgcgF8_tAieKVKJxfIGx2zNNCb19910abbMwkW8-lhWp6kgd

Error cases

실행 기기가 Android가 아닐 경우
false
errorMessage : "SDK Exception : not support os: [ platform ]"
token : ""(string.Empty)

구글 클라우드 플랫폼에서 설정한 정보가 잘못되어있을 경우
bool : false
errorMessage : "GoogleLogin Failed. Reason : 10: "(10:는 구글 SDK에서 리턴되는 에러메시지입니다.)
token : ""(string.Empty)

올바르지 않은 webClientID를 사용하였을 경우
bool : false
errorMessage : "GoogleLogin Failed. Reason : 10: "(10:는 구글 SDK에서 리턴되는 에러메시지입니다.)
token : ""(string.Empty)

올바르지 않은 android ClientID를 GCP에 등록하였을 경우
bool : false
errorMessage : "GoogleLogin Failed. Reason : 10: "(10:는 구글 SDK에서 리턴되는 에러메시지입니다.)
token : ""(string.Empty)


GoogleSignOut

public void GoogleLogin(GoogleSignOutCallback googleSignOutCallback);

public void GoogleSignOutCallback(bool isSuccess, string errorMessage)

파라미터

ValueTypeDescription
googleSignOutCallbackGoogleSignOutCallback로그인 요청에 대한 성공여부, 에러메시지, 토큰값을 불러오는 콜백 함수

설명

구글 아이디를 로그아웃합니다. 이후 구글 로그인 시, 계정을 다시 선택할 수 있습니다.

Example

public void SignOutGoogleLogin() {
TheBackend.ToolKit.GoogleLogin.Android.GoogleSignOut(GoogleSignOutCallback);
}

private void GoogleSignOutCallback(bool isSuccess, string error) {
if (isSuccess == false) {
Debug.Log("구글 로그아웃 에러 응답 발생 : " + error);
} else {
Debug.Log("로그아웃 성공");
}
}