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

친구 요청 불러오기 및 수락하기

1. 나에게 온 친구 요청 불러오기 및 수락하기

사전 준비에서 작성한 BackendFriend.cs의 GetReceivedRequestFriend 함수와ApplyFriend함수에 내용을 추가합니다.

BackendFriend.cs

수정 전

    public void GetReceivedRequestFriend() {
// Step 3. 친구 요청 불러오기 및 수락하기 로직 추가(불러오기 부분)
}

public void ApplyFriend(int index) {
// Step 3. 친구 요청 보내기 로직 추가(수락하기 부분)
}

수정 후

    public void GetReceivedRequestFriend() {
var bro = Backend.Friend.GetReceivedRequestList();

if(bro.IsSuccess() == false) {
Debug.Log("친구 요청 받은 리스트를 불러오는 중 에러가 발생했습니다. : " + bro);
return;
}

if(bro.FlattenRows().Count <= 0) {
Debug.LogError("친구 요청이 온 내역이 존재하지 않습니다.");
return;
}

Debug.Log("친구 요청 받은 리스트 불러오기에 성공했습니다. : " + bro);


int index = 0;
foreach(LitJson.JsonData friendJson in bro.FlattenRows()) {
string nickName = friendJson["nickname"]?.ToString();
string inDate = friendJson["inDate"].ToString();

_requestFriendList.Add(new Tuple<string, string>(nickName, inDate));

Debug.Log($"{index}. {nickName} - {inDate}");
index++;
}
}

public void ApplyFriend(int index) {
if(_requestFriendList.Count <= 0) {
Debug.LogError("요청이 온 친구가 존재하지 않습니다.");
return;
}

if(index >= _requestFriendList.Count) {
Debug.LogError($"요청한 친구 요청 리스트의 범위를 벗어났습니다. 선택 : {index} / 리스트 최대 : {_requestFriendList.Count}");
return;
}

var bro = Backend.Friend.AcceptFriend(_requestFriendList[index].Item2);

if(bro.IsSuccess() == false) {
Debug.LogError("친구 수락 중 에러가 발생했습니다. : " + bro);
return;
}

Debug.Log($"{_requestFriendList[index].Item1}이(가) 친구가 되었습니다. : " + bro);
}

2. BackendManager.cs에 함수 호출 추가

해당 함수가 호출되기 위해서는 게임 실행 시 자동으로 호출되는 BackendManager에서 호출해야 합니다.
뒤끝 초기화와 뒤끝 로그인이 이루어진 후에 함수를 호출할 수 있도록 추가합니다.

로그인하는 유저는 Step2에서 로그인(회원가입)한 유저가 아닌 친구 요청을 보낸 유저로 로그인을 해야합니다.

BackendManager.cs

수정 전(Step 2. 친구 요청 보내기 로직)

    async void Test() {
await Task.Run(() => {
// user1에게 보낼 것이므로 user2로 회원가입
string user2Id = "user2";

// user2Id로 회원가입(409 에러 발생 시, 이미 user2Id로 아이디를 생성했으므로 CustomSignUp을 CustomLogin으로 변경)
BackendLogin.Instance.CustomSignUp(user2Id, "1234");
BackendLogin.Instance.UpdateNickname(user2Id); // 아이디와 동일하게 닉네임 변경

string user1Nickname = "원하는 이름"; // 유저1의 닉네임(유저에 따라 다를 수 있습니다.)
BackendFriend.Instance.SendFriendRequest(user1Nickname); // 친구 요청 보내기 함수

Debug.Log("테스트를 종료합니다.");
});
}

수정 후

    async void Test() {
await Task.Run(() => {

// Step 2에서 user2가 친구 요청을 보낸 유저로 로그인해야합니다.
BackendLogin.Instance.CustomLogin("user1", "1234");

BackendFriend.Instance.GetReceivedRequestFriend(); // 친구 요청 리스트 불러오기
BackendFriend.Instance.ApplyFriend(0); // 친구 요청 리스트 중 최신 요청 수락하기

Debug.Log("테스트를 종료합니다.");
});
}

3. 유니티에서 테스트

스크립트를 수정한 후, 유니티 디버깅을 실행시키고 유니티의 Console 로그를 확인합니다.

이때 로그에서 'ㅇㅇ이(가) 친구가 되었습니다. : statusCode : 204'이 표시되어야 함수 호출에 성공한 것입니다.
해당 로그 외에 statusCode : 400, 404, 409 에러등이 발생할 경우에는 GetReceivedRequestList 에러케이스AcceptFriend 에러케이스를 통해 어떠한 에러로 문제가 발생하였는지 확인할 수 있습니다.