Post on 16-Apr-2017
Naver 개발자센터 및 오픈 API 이용 가이드
네이버랩스
옥상훈
2016-05-09
네이버개발자센터리뉴얼 (2016.1.26)https://developers.naver.com
(기존)� 네이버 개발자센터http://developer.naver.com/
(기존)� 네이버 로그인 개발자센터https://nid.naver.com/devcenter/main.nhn
개발자 센터통합
[ 기존]
(변경)� 네이버 개발자 센터https://developers.naver.com/
[ 변경]
새로운API 추가 (beta)
[음성합성]
텍스트를 아나운서 음성으로들으실수있습니다. 현재4개언어(한국어, 영어, 일본어, 중국어)를지원합니다.
[음성인식]
음성 데이터를 텍스트로 변환
해 줍니다.�현재 2개 언어(한국어,�영어)를 지원합니다.
[기계번역]
영어<->한국어,� 중국어<->한
국어,�일본어<->한국어 번역을 지원합니다.
[캡차]
자동 입력 방지를 위해 보안
문자가 포함된 이미지를 전송하고 입력 값을 검증합니다.�
개발자의 상식이 통하는API
( * 일부 API�들은 추후 개선 예정입니다.� )�
RESTful 하게동작
JSON 으로결과리턴
Error Code는 http status 코드에맞게if (errorCode == 200) {
// success} else if (errorCode >= 400) {
// error }
{"message":{"@type":"response","@service":"naverservice.labs.api","@version":"1.0.0","result":{"translatedText":"I love you."}}}
https://openapi.naver.com/v1/language/translate
(기존)� 14개의 사항 입력 (변경)� 4개의 필수 사항 입력
제휴신청간소화
기존에 제휴 신청을 하려면 회사명부터 담당자 연락처 까지 14개의 항목을 입력해야 했지만,�API�사용 목적과 예상 사용량,�활용화면만 올려 주시면 됩니다.� �또한 제휴 진행 상황을 확인하는 화면도 함께 추가하였습니다.�
[ 기존] [ 변경]
API 마이그레이션 FAQ
• 마이그레이션해야하는이유– 2016년 1월 26일에 개편된 개발자센터를 오픈하면서 API�인증체계를 개선하였습니다.��
– 이에 따라 API 호출하는 방식도 함께 변경하였습니다.� .�
• 누가마이그레이션대상인가요?– 네이버와 별도의 제휴키를 발급받아 사용하는 개발사
– 구 개발자센터에서 API�키를 발급받아 사용하는 개발사
• 언제까지마이그레이션해야하나요?– 기존 API�호출 방식은 2016년 12월 말까지만 지원합니다.�
– 따라서 2016년 12월 중순까지 마이그레이션 완료해야 하며,�이는 제휴신청 승인까지 포함이므로 2주 이상 여유를 두시는 것이 좋습니다.�
• 마이그레이션작업은어떻게해야하나요?�– 네이버 개발자센터에서 처리할 것들
• 애플리케이션 정보 등록및 설정
• 제휴 신청
– 애플리케이션에서 해야할 것들
• API�호출 방법변경
• 서비스 URL과애플리케이션 등록 정보 확인
(기존)� 각 API�별로 API키를 발급 받아 사용 (변경)� API�이용신청 또는 애플리케이션 등록 후API�권한 설정화면에서 사용할 API�체크
API 키대신API 이용신청
기존에는 각 API별로 API�키를 발급받아 사용하였지만,� 이제는 API�이용 신청 또는 애플리케이션을 등록한 다음,�API�권한 설정화면에서 사용하려는 API를 체크해 주시면 됩니다.� API를 호출할 때는 API�키 대신 애플리케이션 등록 시 발급 받은 클라이언트아이디와 시크릿 값을 HTTP헤더에 전송하는 것으로 변경되었습니다.�
[ 기존] [ 변경]
API 호출방법
[ 비로그인 오픈API ] [ 로그인오픈API]• 방법
– REST�API�호출
– HTTP�헤더에 클라이언트 아이디와 시크릿값 포함해서 호출
• 대상– 지도,�검색,�좌표변환,� 단축 URL
– 음성인식,� 기계번역,� 음성합성, 캡차
• 주의사항– 클라이언트 아이디와 시크릿은 반드시 헤
더값에 포함해야 함
– http� �method 일치 여부 확인 (예: 검색은 GET,�기계번역은 POST)
– 텍스트는 대부분 UTF-8로 인코딩 필요(예: 검색 쿼리, 기계번역 텍스트 값)
• 방법– REST�API�호출
– 로그인 인증 후 발급 받은 접근 토큰 값을 Authorization 헤더에 포함해서 호출
• 대상– 회원 프로필 조회, 블로그 글쓰기, 카페
가입 및 글쓰기, 캘린더 일정 담기
• 주의사항– 단체아이디는 네이버 로그인이 지원되지
않으므로 개인아이디로 호출해야함
– 카페 글쓰기 API에서 텍스트는 UTF-8� ->�MS949로 이중 인코딩을 해야 한글이 깨지지 않음
검색API 호출데모– 1단계:애플리케이션 등록
(경로1)� Application� 애플리케이션 등록(경로2) 검색 API�개발 가이드 오픈API이용 버튼 클릭
검색API 호출데모– 2단계:서비스환경설정
• 주의: 서비스 URL은 실제 환경과 일치해야 인증오류가 발생하지 않음• 로컬에서 개발 중일 때는 127.0.0.1:포트번호로 설정
검색API 호출데모– 3단계:클라이언트 아이디/시크릿 확인
• 주의: 클라이언트 시크릿 값은 ‘보기’버튼 클릭하면 재발급 가능
검색API 호출데모– 4단계:API 호출
• 주의: 클라이언트 아이디와 시크릿 값은 http� 헤더로 전송해야 함
// 클라이언트 아이디 및 시크릿 그리고 요청 URL 선언String clientId = ”클라이언트아이디";String clientSecret = ”클라이언트시크릿";String site =
"https://openapi.naver.com/v1/search/news.xml?query=%EB%8C%80%ED%86%B5%EB%A0%B9&start=1&display=100";
try {// HTTP 헤더에 클라이언트 아이디와 시크릿을 추가하기 위한 과정CloseableHttpClient client = HttpClientBuilder.create().build();HttpGet request = new HttpGet(site);request.addHeader("X-Naver-Client-Id", clientId);request.addHeader("X-Naver-Client-Secret", clientSecret);
HttpResponse response = client.execute(request);HttpEntity responseEntity = response.getEntity();String results = null;if(responseEntity!=null) results = EntityUtils.toString(responseEntity);
} catch (Exception e) {System.out.println(e);
}
- 감사합니다 -
https://developers.naver.com