게스트 우편 수령과 랭킹 보상 우편 수령 관련 질문입니다.

문의를 남기실 경우 다음 항목을 작성해 주시면 빠른 답변 처리에 도움이 됩니다.

  • 프로젝트명 : 블루문
  • 뒤끝SDK 버전 : 5.4.0 (최신)
  • 에러 코드 :

안녕하세요. 이번에 새롭게 게임을 출시하게 되었습니다.
늘 뒤끝서버에 감사하게 되네요. 이번에도 수월하게 서버를 붙일 수 있었습니다.
다만, 저번 출시작과는 달리 이번에는 뒤끝서버 기능을 더욱 다각도로 활용하고
있는데요.

질문이 있어 아래와 같이 정리해드립니다.

  1. 게스트 아이디 우편 수령 관련

문제 : 게스트로 로그인한 유저 우편 보상 수령이 안되는 현상

  • 커스텀 로그인 유저들은 유편 보상을 문제 없이 수령하는 반면, 게스트 로그인 유저들의 경우 한 명도 우편
    보상을 수령하지 못했습니다. 아래와 같이 코드를 사용하고 있습니다.
string postIndate = Backend.Social.Post.GetPostListV2().GetReturnValuetoJSON()["fromAdmin"][Mail_N - 1]["inDate"]["S"].ToString();
            Debug.Log(postIndate);
            BackendReturnObject bro = Backend.Social.Post.ReceiveAdminPostItemV2(postIndate);

            for (int i = 0; i <= Item.Count - 1; i++)
            {
                Item[i].gameObject.SetActive(false);
            }
            Mail_N = 1;
            Item_count = 0;
            item_S = 0;
            Start_GetPostListV2();
            ListPostListV2();
        }
        else
        {
            index.gameObject.SetActive(false);
            index.gameObject.SetActive(true);
            index_txt.text = "우편이 없습니다.";
  1. 랭킹 보상 우편 받아오기
  • 랭킹 보상 관련 도움말이 조금 부족한 것 같습니다. 예제만 보고 하기에는 많이 어려움이 있는데요.
    월요일이 되어 우편이 날아오는 것까지는 확인했으나, 보상이 제대로 수령되지 않습니다. 현재 우편
    정보 받아오는 코드는 아래와 같이 사용하고 있는데요. 랭킹 보상과 일반 보상은 어떻게 구분하면
    되는 것인가요?

뒤끝 개발자 (thebackend.io)

해당 링크를 보고 제작한 것입니다. 같은 "itemCount"만 보더라도 관리자 우편 수령은 N으로 랭킹 수령은
S로 되어 있습니다. 어떤식으로 구분하면 될까요? 개발을 독학으로 공부해 출시까지 진행하다 보니,
조금만 구체적으로 알려주시면 감사하겠습니다.

BackendReturnObject post = Backend.Social.Post.GetPostListV2();
        JsonData rows = post.GetReturnValuetoJSON()["fromAdmin"];

 if (rows.Count > 0)
        {
            Mail_none.gameObject.SetActive(false);
            Mail_exist.gameObject.SetActive(true);

            for (int i = 0; i < rows.Count; i++)
            {
                Alrim.gameObject.SetActive(true); // 알림 아이콘 뜨기
                JsonData data = rows[Mail_N - 1];

                    string a = data["title"]["S"].ToString();
                    Main_title.text = a;
                    Debug.Log(a);
                    string b = data["content"]["S"].ToString();
                    Main_txt.text = b;

                    string c = data["expirationDate"]["S"].ToString();
                    string c1 = c.Substring(0, 10);
                    day_txt.text = "기간 만료 : " + c1;

                    string e = data["itemCount"]["N"].ToString();
                    int e1 = int.Parse(e);
                    Item_count = e1;

                    if (e1 < 100)
                    {
                        item_txt.text = "+ " + e1;
                    }
                    else if (e1 >= 100)
                    {
                        item_txt.text = "+ " + e1.ToString("0,00");
                    }

                    string d = data["item"]["M"]["itemID"]["S"].ToString();
                    item_S = int.Parse(d);
                    item_on();
            }
        }
        else
        {
            Mail_none.gameObject.SetActive(true);
            Mail_exist.gameObject.SetActive(false);
            Alrim.gameObject.SetActive(false);
        }

안녕하세요 개발자님

  1. 로그를 확인해본 결과, 우편 수령이 실패하였다는 에러 로그는 보이지 않고 있습니다.
    해당 로직으로 테스트를 진행해주시면 감사하겠습니다.
    a. 게스트 회원가입 후, 해당 아이디에 우편 발송
    b. Backend.Social.Post.GetPostListV2()의 리턴값을 확인하여 우편이 제대로 보내졌는지 확인.
    c. 해당 postIndate를 받아 우편 수령 후 콜백이 IsSuccess()인지 확인.

  2. 랭킹 보상과 일반 우편의 경우 다음과 같이 3가지 방법으로 구분할 수 있습니다

A. 리턴값에 rankType이 있는지 확인(있을 경우 랭킹, 없을 경우 일반 우편)

var bro = Backend.Social.Post.GetPostList();
if(bro.IsSuccess())
{
    JsonData json = bro.GetReturnValueToJSON()["fromAdmin"];
    if(json[0].ContainsKey("rankType"))
    {
        string itemCount = json[0]["itemCount"]["S"].ToString();
    }
    else
    {
        string itemCount = json[0]["itemCount"]["N"].ToString();
    }
}
else
{
    //에러 발생
}

B. 데이터 형식이 N 혹은 S인지 확인하기

if(data[i]["itemCount"].ContainsKey("N"))
{
 post = data[i]["itemCount"]["N"].ToString();
}
else if if(data[i]["itemCount"].ContainsKey("N"))
{
 post = data[i]["itemCount"]["S"].ToString();
}

C. Flatten 함수를 사용하여 문자열 표현 방식 제거 후 사용하기

var data = Backend.Social.Post.GetPostListV2().GetFlattenJSON();
var post = data["fromAdmin"][0]["itemCount"].ToString();

Flatten에 대한 자세한 설명은 아래 개발자 문서에서 확인하실 수 있습니다.

우편 관련 개발자문서에 대해서는 좀 더 편하고 쉽게 사용할 수 있도록 수정하도록 하겠습니다.

감사합니다.

좋아요 1

자세하게 답변 달아주셔서 감사합니다. 모두 이해하였습니다 :slight_smile: