뒤끝 Insert코드 에디터 테스트와 모바일테스트 차이

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

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

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

  • 뒤끝 SDK 버전 : 5.11.7

  • 프로젝트명 : ShooPang

  • 스테이터스 코드 : 400, 401

  • 에러 코드 : Exception

  • 에러 메시지 :

    public void CreateUserEventData(string whereKey, string value)
    {
    Param param = new Param();
    param.Add(whereKey, value);

      var bro = Backend.GameData.Insert(Constants.USER_EVENTDATA_TABLE, param);
    
      if (bro.IsSuccess())
      {
          string ReadFile = null;
    
          if (FileManager.LoadFromTestFile(BackendInDateFilePath, out ReadFile))
          {
              bool result = FileManager.AddFromTestFile(BackendInDateFilePath, Constants.USER_EVENTDATA_TABLE + "|" + bro.GetInDate());
              if (!result)
              {
                  ErrorText.Add("Failed to add data to file.");
              }
              else
                  Debug.Log("Add Success");
          }
      }
      else
          Debug.Log(bro.GetErrorCode());
    

    }

public async UniTask CreateUserEventData(string whereKey, string value)
{
Param param = new Param();
param.Add(whereKey, value);

var completionSource = new UniTaskCompletionSource<bool>();

Backend.GameData.Insert(Constants.USER_EVENTDATA_TABLE, param, (callback) =>
{
    if (callback.IsSuccess())
    {
        string ReadFile = null;

        if (FileManager.LoadFromTestFile(BackendInDateFilePath, out ReadFile))
        {
            bool result = FileManager.AddFromTestFile(BackendInDateFilePath, Constants.USER_EVENTDATA_TABLE + "|" + callback.GetInDate());
            if (result)
            {
                completionSource.TrySetResult(true);
            }
            else
            {
                completionSource.TrySetException(new Exception("Failed to add data to file."));
            }
        }
        else
        {
            completionSource.TrySetException(new Exception("Failed to load from file."));
        }
    }
    else
    {
        // 실패 이유를 디버그 로그에 출력
        Debug.LogError($"Data insertion failed: {callback.GetMessage()}");
        completionSource.TrySetException(new Exception($"Data insertion failed: {callback.GetMessage()}"));
    }
});

await completionSource.Task;

}

두 개의 동기, 비동기 Insert코드를 Editor에서 직접 실행시키면 제대로 오류없이 작동하는 것을 확인했습니다.

하지만 안드로이드 모바일로 실행하게 되면, Insert에서 에러를 일으켜 문제가 되고 있습니다.

에러 사항으로는 400, 401에러가 뜨게 되는데 400은 비동기 401은 동기에서 나오게 됩니다(제가 제대로 실행을 안 했을 가능성이 있습니다)

스키마가 미정의된 User_EventData라는 테이블에 param{string, string} 값을 Insert하는 과정입니다.

안녕하세요 개발자님,
말씀해주신 Insert 과정의 에러 정보 확인 시
뒤끝 로그인을 하지 않은 상태에서 함수 호출을 요청하여 에러가 발생한 것으로 확인됩니다.

모든 에러는 에러 메시지를 통해 상세 정보를 확인할 수 있도록 제공하고 있습니다.
에러 스테이터스 코드 외에 에러메시지를 함께 확인하여 문제 상황을 확인해 주시면 감사하겠습니다.

public void GPGSLogin()
{
    text.text += "버튼 누르는 중" + "\n";
    PlayGamesPlatform.Instance.Authenticate(RequestAccessToken);
}

internal void RequestAccessToken(SignInStatus status)
{
    if (status == SignInStatus.Success)
    {
        text.text += "성공" + "\n";
        StartCoroutine(GetAccessCode());
    }
    else
    {
        text.text += "실패" + "\n";
        HandleFailedLogin();
    }
}

IEnumerator GetAccessCode()
{
    yield return new WaitUntil(() => Backend.IsInitialized);

    text.text += "access시도" + "\n";

    PlayGamesPlatform.Instance.RequestServerSideAccess(
    /* forceRefreshToken= */ false,
    (code) =>
    {
        text.text += "access시도 중" + "\n";

        if (string.IsNullOrEmpty(code))
        {
            text.text += "Empty code received\n";
            HandleFailedLogin();
            return;
        }

        Backend.BMember.GetGPGS2AccessToken(code, googleCallback =>
        {
            if (googleCallback.IsSuccess())
            {
                text.text += "access 성공" + "\n";

                _accessToken = googleCallback.GetReturnValuetoJSON()["access_token"].ToString();
                HandleSuccessfulLogin();
            }
            else
            {
                text.text += "구글 어세스코드 에러: " + googleCallback.GetErrorCode() + "\n";
                HandleFailedLogin();
            }
        });

        _splashManager.LoadLobby();
    });
}

해당 코드에서 text.text += “access시도” + “\n”; 부분까지는 진행이 되는데,
PlayGamesPlatform.Instance.RequestServerSideAccess() callback 신호가 오지 않고 있습니다 혹시 답변 가능하신가요?

콘솔 조회 동의가 되어있지 않아 정확한 정보 확인이 어렵습니다.
에러 이미지의 메시지를 확인하였을 때 Web Client ID 정보의 문제일것으로 예상됩니다.

구글 콘솔의 설정이 잘 되어있는지,
그리고 뒤끝 콘솔에 인증정보가 잘 등록되어 있는지 확인해서 다시 시도해 주시면 감사하겠습니다.

제가 V2 로그인을 만들고 적용되는 것을 확인하고 몇 주 동안 문제가 없었는데, 어느 순간(날짜가 특정되지 않음) 구글 로그인 자체가 안 되는 것을 확인했습니다. 말씀해주신 인증 정보는 예전 테스트 해보았을 당시 이미 적용이 완료되어서, 인증 처리하는 과정 자체에는 문제가 없다고 생각합니다. 혹시 최근 구글 정책 및 OAuth 관련해서 바뀐 것이 있을까요?

클라이언트 ID 재발급 해서 해결했습니다

좋아요 1