예제 #1
0
    // 친구랭킹을 조회하여 친구랭킹 변수에 저장하는 함수입니다.
    public void LoadFriendRank(Action callback)
    {
        // 친구랭킹조회를 위해 Facebook 로그인 결과 받아놓은 페이스북 친구리스트를 가져옵니다.
        JSONArray friendList = new JSONArray();

        // 페이스북 친구리스트 결과 JSON에서 페이스북 아이디 배열을 추출합니다.
        foreach (JSONValue item in UserSingleton.Instance.FriendList)
        {
            JSONObject friend = item.Obj;
            friendList.Add(friend["id"]);
        }

        // 친구랭킹 API 호출시 Body에 넣을 친구리스트 JSONObject를 생성합니다.
        JSONObject requestBody = new JSONObject();

        requestBody.Add("UserID", UserSingleton.Instance.UserID);
        requestBody.Add("FriendList", friendList);

        Debug.Log(requestBody.ToString());

        // 친구랭킹 API로 POST 호출을 합니다.
        HTTPClient.Instance.POST(Singleton.Instance.HOST + "/Rank/Friend", requestBody.ToString(), delegate(WWW www) {
            // 친구랭킹 조회 결과를 디버그 로그에 출력합니다.
            Debug.Log("LoadFriendRank : " + www.text);
            // 친구랭킹 조회 결과를
            string response = www.text;
            if (string.IsNullOrEmpty(response))
            {
                Debug.Log("친구랭킹이 없네!~");
                callback();
                return;
            }

            // 친구랭킹 응답 본문을 JSONObject로 변환합니다.
            JSONObject obj = JSONObject.Parse(response);
            // 응답 본문 Data 필드에 있는 JSONArray를 추출합니다.
            JSONArray arr = obj["Data"].Array;
            // 친구랭킹 리스트를 하나씩 foreach로 조회합니다.
            foreach (JSONValue item in arr)
            {
                // 해당 랭킹 유저의 Rank 순위를 추출합니다.
                int rank = (int)item.Obj["Rank"].Number;
                // 이미 해당 Rank의 유저가 변수에 있으면 지웁니다.
                if (FriendRank.ContainsKey(rank))
                {
                    FriendRank.Remove(rank);
                }
                // 해당 친구 순위에 랭킹 정보를 할당합니다.
                FriendRank.Add(rank, item.Obj);
            }

            callback();
        });
    }
예제 #2
0
    public void LoadFriendRank(Action callback)
    {
        JSONArray friendList = new JSONArray();

        foreach (JSONValue item in UserSingleton.Instance.FriendList)
        {
            JSONObject friend = item.Obj;
            friendList.Add(friend ["id"]);
        }

        JSONObject requestBody = new JSONObject();

        requestBody.Add("UserID", UserSingleton.Instance.UserID);
        requestBody.Add("FriendList", friendList);

        HTTPClient.Instance.POST(Singleton.Instance.HOST + "/Rank/Friend", requestBody.ToString(), delegate(WWW www) {
            Debug.Log("LoadFriendRank" + www.text);

            string response = www.text;

            JSONObject obj = JSONObject.Parse(response);

            JSONArray arr = obj["Data"].Array;

            foreach (JSONValue item in arr)
            {
                int rank = (int)item.Obj["Rank"].Number;
                if (FriendRank.ContainsKey(rank))
                {
                    FriendRank.Remove(rank);
                }
                FriendRank.Add(rank, item.Obj);
            }

            callback();
        });
    }