Resp Api 카카오 로그인 오류

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


개발 환경은 xcode 14.3.1 unity 2021.3.f1 ios mintarget을 15로 잡고 입니다.
디벨로퍼스 앱 ID는 870179 입니다.

Resp api로 개발 하기 위해서 카카오 디벨로퍼에 내 애플리케이션 앱 설정 → 플랫폼에서 Web 쪽에 http://127.0.0.1:8080으로 등록을 하였고 제품 설정 → 카카오 로그인에서 Redirect Url를 http://127.0.0.1:8080/kakao-login 으로 등록했습니다.
그 다음 인가 코드를 얻기 위해서
Application.OpenURL(kakaoAuthURL + KakaoAppKey + “&redirect_uri=” + redirectURI + “&response_type=code”);
을 통해 인가 코드를 가져오라고 했습니다. KakaoAppKey 는 Rest Api로 사용했습니다. private string redirectURI = “http://127.0.0.1:8080/kakao-login”; 로 설정을 했고요 빌드해서 테스트를 하면 카카오 로그인 까지 넘어가고 네트워크 서버에 연결 할 수 없기 때문에 Safari가 해당 페이지를 열 수 없다고 하는데 혹시 수정해야할 사항이 있는건가요?
알려주시면 감사합니다.

로그인 할 때 사용되는 나머지 코드입니다.
private string kakaoAuthURL = “카카오계정”;

private void OnApplicationFocus(bool hasFocus)
{
Debug.Log("hasFocus : " + hasFocus);
if (hasFocus)
{
// 앱이 다시 포커스를 얻었을 때, 인가 코드 확인
string urlScheme = “kakao”; // 여기에 사용한 URL Scheme을 입력하세요.

        // iOS에서 URL Scheme으로 호출되었을 때의 처리
        if (Application.platform == RuntimePlatform.IPhonePlayer)
        {
            if (urlScheme != null && urlScheme.Length > 0)
            {
                string[] args = System.Environment.GetCommandLineArgs();
                foreach (string arg in args)
                {
                    if (arg.StartsWith(urlScheme + "://"))
                    {
                        // URL Scheme으로 호출되었을 때의 로직
                        string authCode = arg.Substring((urlScheme + "://").Length);
                        logText.text = "인가 코드: " + authCode;

                        // 인가 코드를 사용하여 액세스 토큰 요청
                        RequestAccessToken(authCode);
                    }
                }
            }
        }
    }
}

private void RequestAccessToken(string code)
{
    // 액세스 토큰 요청을 위한 URL 및 파라미터 설정
    string tokenURL = "https://kauth.kakao.com/oauth/token";
    WWWForm form = new WWWForm();
    form.AddField("grant_type", "authorization_code");
    form.AddField("client_id", KakaoAppKey);
    form.AddField("redirect_uri", redirectURI);
    form.AddField("code", code);

    // POST 요청을 통해 액세스 토큰 얻기
    StartCoroutine(SendTokenRequest(tokenURL, form));
}

private IEnumerator SendTokenRequest(string url, WWWForm form)
{
    using (WWW www = new WWW(url, form))
    {
        yield return www;

        if (string.IsNullOrEmpty(www.error))
        {
            // 응답 데이터 파싱
            string responseText = www.text;
            Dictionary<string, object> responseData = MiniJSON.Json.Deserialize(responseText) as Dictionary<string, object>;

            if (responseData != null && responseData.ContainsKey("access_token"))
            {
                string accessToken = responseData["access_token"] as string;
                yourAccessToken = accessToken;
                logText.text = "액세스 토큰: " + accessToken;

                // 여기에서 액세스 토큰을 사용하여 카카오 API에 요청을 보낼 수 있습니다.
                // 추가 요청 및 데이터 처리를 위한 코드를 추가하세요.
            }
            else
            {
                logText.text = "액세스 토큰을 얻을 수 없습니다.";
            }
        }
        else
        {
            logText.text = "토큰 요청 중 오류 발생: " + www.error;
        }
    }
}

카카오 로그인 까지 넘어가고 네트워크 서버에 연결 할 수 없기 때문에 Safari가 해당 페이지를 열 수 없다고 하는데

앱을 구동한 기기에서 http://127.0.0.1:8080/kakao-login 에 접근 못하는 상황 같은데요.

해당 기기에서 브라우저로 http://127.0.0.1:8080/kakao-login 에 접근 가능한지 확인해보시겠어요?

접근이 안 되고 있습니다
접근 하기 위해서는 접근 할 수 있는 서버를 만들어주고 그 서버를 redirectURI 에 넣어줘야하는 건가요?

네, 맞습니다. 리다이렉트 URI는 해당 기기에서 호출 가능한 주소를 넣어 주셔야합니다.

넵 알려주셔서 감사합니다.

혹시 resp api 카카오 로그인이 성공이 되는지 테스트를 해보려고 하는데 리다이렉트 URI를 카카오에서 제공을 해주는 것은 없는건가요? (테스트 목적으로)

네, 테스트용 리다이렉트 URI를 제공하지 않습니다.

디벨로퍼스 REST-API 테스트 도구로
사용하시는 디벨로퍼스 앱 선택하셔서 토큰 발급 테스트 해보시면 좋을 것같아요.

카카오계정

만약 리다이렉트 URI를 http://localhost:8080/login/kakao-redirect 라고 설정하고 사용하면 xcode에서 info URL Types 쪽에 URL Schemes 를 http://localhost:8080/login/kakao-redirect로 설정하고 빌드 해야하는거죠?