private static final String KAKAO_INFO_URI = "https://kapi.kakao.com/v2/user/me";
public ResponseEntity<Map> getKakaoMemberProfile(String accessToken) throws Exception {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Bearer " + StringUtil.URLEncode(accessToken));
headers.add("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE + ";charset=UTF-8");
log.info("====profile headers====");
log.info(headers.toString());
log.info("====profile headers====");
URI uri = URI.create(KAKAO_INFO_URI);
RequestEntity<String> rq = new RequestEntity<>(headers, HttpMethod.POST, uri);
ResponseEntity<Map> re = restTemplate.exchange(rq, Map.class);
return re;
}
위와 같이 Access Token을 파라미터로 받아서 RestTemplate를 이용하여 Rest API를 호출하고 있습니다. Access Token 발급받을 때도 위와 같이 RestTemplate를 이용하여 잘 됐었는데 사용자 정보 요청 API는 위와 같이 호출하니깐 401 에러가 떨어지면서 동작하지 않고 있습니다.
log로 header를 찍어봐도 Bearer [AccessToken] 이 잘 들어가있는 것을 확인하였는데 어디가 문제가 되고 있는지 혹시 조언을 얻을 수 있을까요?
(내 애플리케이션 > 설정 > 사용자 관리에서 로그인 동의항목 > 개인정보 보호항목에 profile, account_email, gender, birthday를 추가해둔 상태입니다.)