카카오싱크 퍼머링크 발급 안내

안녕하세요

(1) java.io.IOException: Server returned HTTP response code: 401 for URL: https://kauth.kakao.com/oauth/token
카카오측에 타이어나라 토큰 요청 로그가 없는걸 보면, Request데이터가 훼손 되었을 것 같습니다.
토큰 요청은 예제 코드 그대로 사용하셨나요?

https://kauth.kakao.com/oauth/authorize?client_id=a0641350ab6b6afac7***&redirect_uri=http://test1.tirenara.net/test.do&response_type=code
② 6OF30GTcZ8ijfCBuLLNxEGjPbsCxMGVFYl0truLU5Ei7nXeYL7CFF6Ip1Eb34grJ1j0-aQopdSkAAAF9Ji-lrg
③ {“grant_type”: “authorization_code”, “client_id”: “a0641350ab6b6afac7ba8fb30d11913f”, “redirect_uri”: “http://test1.tirenara.net/test.do”, “code”: “6OF30GTcZ8ijfCBuLLNxEGjPbsCxMGVFYl0truLU5Ei7nXeYL7CFF6Ip1Eb34grJ1j0-aQopdSkAAAF9Ji-lrg”}

request데이터가 code밖에 없지 않나요? 개발서버에서 ①번에서 인가코드를 받고 ②번의 code를 가지고 다시 ③ 토큰을 요청했습니다.

혹시 모르니 소스도 올려보겠습니다.
String restApiKey = “a0641350ab6b6afac7ba8fb30d11913f”;
String code = params.getString(“code”);
String redirectUrl = request.getScheme() + “://” + request.getServerName() + “/test.do”;
System.out.println("################################## " + code);

		URL url = new URL("https://kauth.kakao.com/oauth/token");
		HttpURLConnection con = (HttpURLConnection) url.openConnection();
		con.setRequestMethod("POST");
		con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded; utf-8");
		con.setRequestProperty("Accept", "application/json");
		con.setDoOutput(true);
		con.setRequestProperty("Authorization", restApiKey);

		String jsonInputString = "{\"grant_type\": \"authorization_code\", \"client_id\": \"" + restApiKey + "\", \"redirect_uri\": \"" + redirectUrl + "\", \"code\": \"" + code + "\"}";
		System.out.println(jsonInputString);
		try (OutputStream os = con.getOutputStream()) {
			byte[] input = jsonInputString.getBytes("utf-8");
			os.write(input, 0, input.length);
		}

		try (BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) {
			StringBuilder response2 = new StringBuilder();
			String responseLine = null;
			while ((responseLine = br.readLine()) != null) {
				response2.append(responseLine.trim());
			}
			System.out.println(response2.toString());
		}

(2) 운영서버에서 발생하는 자세한 에러 확인할 수 있을까요?
자세한 에러는 아래 url에서 확인 가능합니다.

https://www.tirenara.net/test.do?code=SYN4ADON0X8yXvhtOnz32i9Ha8prlbsJehdFYbrz1pgbDjXm7Xu-QRRqoBnvseNtrBZ9nQorDNQAAAF9Ji5DEA

->자바 버전 확인
[root@autoonlineweb ~]# javac -version
javac 1.8.0_65

→ ca-certificates 버전 확인
[root@autoonlineweb ~]# rpm -q ca-certificates
ca-certificates-2015.2.6-65.0.1.el6_7.noarch

  1. 자바 버전이 낮은데 루트 인증서를 설치하면 될까요?

  2. 아니면 지금 방식에 rest api인데
    ios에서 생긴 이슈가 window.open 새창 문제가 있는거라…
    리다이렉트 방식으로 해봐도될까요?
    (확인해보니 redirect 방식으로 개발하려고해도 token받기가 필요하네요…)