고객님의 문의에 답변하는 직원은 고객 여러분의 가족 중 한 사람일 수 있습니다.
고객의 언어폭력(비하, 조롱, 욕설, 협박, 성희롱 등)으로부터 직원을 보호하기 위해
관련 법에 따라 수사기관에 필요한 조치를 요구할 수 있으며, 형법에 의해 처벌 대상이 될 수 있습니다.
커뮤니티 이용 정책에 위배되는 게시물을 작성할 경우, 별도 안내 없이 게시물 삭제 또는 커뮤니티 이용이 제한될 수 있습니다.
문의 응대 : 평일 오전 10시 ~ 오후 6시
문의를 남기실 경우 다음 항목을 작성해 주세요.
정보가 부족하거나 응대시간 외 문의하는 경우 확인 및 답변이 지연될 수 있습니다.
- 뒤끝 SDK 버전 : SDK-5.11.7
- 프로젝트명 : 몬스터 테이블
- 스테이터스 코드 : 401
- 에러 코드 : BadUnauthorizedException
- 에러 메시지 : bad bad google accesstoken
안녕하세요. 현재 뒤끝으로 프로젝트 진행 중입니다.
현재 게스트 → 구글 로그인으로 마이그레이션 작업 진행 중인데
막히는 부분이 있어 이렇게 문의로 몇 가지 질문드립니다.
- 게스트 로그인을 무조건 처음에 시킵니다. 그렇게 하여도 GPGS에 관련된 작업들
public void SetGoogle()
{
//PlayGamesPlatform.Activate();
PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
}
void ProcessAuthentication(SignInStatus status) {
if (status == SignInStatus.Success)
{
LoginGPGS();
// Continue with Play Games Services
} else {
// Disable your integration with Play Games Services or show a login button
// to ask users to sign-in. Clicking it should call
// PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
}
}
public void LoginGPGS()
{
PlayGamesPlatform.Instance.RequestServerSideAccess(
/* forceRefreshToken= */ false,
code => {
Debug.Log("구글 인증 코드 : " + code);
Backend.BMember.GetGPGS2AccessToken(code, googleCallback =>
{
//Debug.Log("GetGPGS2AccessToken 함수 호출 결과 " + googleCallback);
if (googleCallback.IsSuccess())
{
token = googleCallback.GetReturnValuetoJSON()["access_token"].ToString();
}
});
});
}
이런 것들을 꼭 해줘야 할까요?
1-1. 필요없다면 게스트 → 구글로 컨버트 해줄 때 토큰 값을 무엇을 넣어야하나요?
1-2. 필요하다는 가정하에 진행하였을 시
public void ConvertGuestToGoogle(Action successAction)
{
//Backend.BMember
string token = GoogleManager.Instance.GetAccessCode(); // 이부분은 GetGPGS2AccessToken로 나온 값을 기입했습니다.
SendQueue.Enqueue(Backend.BMember.ChangeCustomToFederation,token, FederationType.Google, callback => {
if(callback.IsSuccess())
{
Data.userPrivateData.userSettingData.isGuest = false;
successAction?.Invoke();
}
else
{
if (callback.GetStatusCode() == "400" &&
callback.GetErrorCode() == "BadParameterException")
Debug.Log("이미 페러데이션 계정으로 연결되어 있습니다.");
else if (callback.GetStatusCode() == "409" &&
callback.GetErrorCode() == "DuplicatedParameterException")
Debug.Log("현재 계정은 사용중입니다.");
else if (callback.GetStatusCode() == "400" &&
callback.GetErrorCode() == "UndefinedParameterException")
Debug.Log("토큰값이 null입니다.");
else
Debug.Log("Convert Fail / "+ callback.GetStatusCode() + " / " + callback.GetErrorCode()+ " / Contents : " + callback.GetMessage());
UIManager.Instance.UseNotice("구글 연동에 실패하였습니다." , 3f);
}
});
}
앞서 말씀드린 에러 메시지에 적은 것처럼 엑세스 토큰이 잘못되었다고 나오는데 저 AccessToken을 적는게 아닌가요?
(참고로 GPGS v2 사용중입니다.)