401 에러는 해당 리소스에 유효한 인증 자격 증명이 없어 발생한 것 입니다.
즉, 호출한 서비스측에서 잘못 요청하였거나 잘못된 정보로 요청한 상황으로 카카오에서 응답으로 전달한 Json 에러 메시지를 확인 해야합니다.
(1) API 유형별 에러와 원인
{"code":-401,"msg":"this access token does not exist"}
해결책 : 유효한 액세스 토큰을 설정하거나 가이드에 명시된 Content-Type으로 API 호출 했는지 확인합니다.
{"code":-401,"msg":"this access token is already expired"}
해결책 : 액세스 토큰을 재발급 받습니다.
-
응답: 실패, 디벨로퍼스 허용 IP 주소에 등록하지 않은 IP에서 API 호출한 경우
{"code":-401,"msg":"ip mismatched! callerIp=xxx.xxx.xxx.xxx. check out registered ips."}
해결책 : 허용 IP 주소](시작하기 | Kakao Developers 시작하기)에 callerIp를 등록하거나, 허용 IP 주소를 모두 삭제 하여 IP 체크를 하지 않도록 합니다.
{"code":-401,"msg":"no authentication key!"}
해결책 : 앱키를 올바르게 설정했는지 확인합니다.
HttpURLConnection 를 이용하는 경우, 에러 메시지는 ErrorStream으로 전달됩니다.
Java 에서 HttpURLConnection 객체 사용하는 경우 아래와 같이 확인 할 수 있습니다.
에러 Trace 에는 에러 메시지가 표시되지 않습니다.
InputStream stream = conn.getErrorStream();
if (stream != null) {
try (Scanner scanner = new Scanner(stream)) {
scanner.useDelimiter("\\Z");
response = scanner.next();
}
System.out.println("error response : " + response);
}