ݺߣ

ݺߣShare a Scribd company logo
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 으로 결과리턴
ErrorCode는 http status 코드에 맞게
if (errorCode == 200) {
// success
} else if (errorCode >= 400) {
// error
}
{"message":{"@type":"response","@service":"naverservice.labs.api","@v
ersion":"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&sta
rt=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

More Related Content

[D2SF] Naver 오픈 API 가이드

  • 1. Naver 개발자센터 및 오픈 API 이용 가이드 네이버랩스 옥상훈 2016-05-09
  • 3. (기존) 네이버 개발자센터 http://developer.naver.com/ (기존) 네이버 로그인 개발자센터 https://nid.naver.com/devcenter/main.nhn 개발자 센터통합 [기존] (변경) 네이버 개발자 센터 https://developers.naver.com/ [변경]
  • 4. 새로운API 추가 (beta) [음성합성] 텍스트를 아나운서 음성으로 들 으실수있습니다. 현재4개언어 (한국어, 영어, 일본어, 중국어)를 지원합니다. [음성인식] 음성 데이터를 텍스트로 변환 해 줍니다. 현재 2개 언어(한 국어, 영어)를 지원합니다. [기계번역] 영어<->한국어, 중국어<->한 국어, 일본어<->한국어 번역 을 지원합니다. [캡차] 자동 입력 방지를 위해 보안 문자가 포함된 이미지를 전송 하고 입력 값을 검증합니다.
  • 5. 개발자의 상식이 통하는API ( * 일부 API 들은 추후 개선 예정입니다. ) RESTful 하게 동작 JSON 으로 결과리턴 ErrorCode는 http status 코드에 맞게 if (errorCode == 200) { // success } else if (errorCode >= 400) { // error } {"message":{"@type":"response","@service":"naverservice.labs.api","@v ersion":"1.0.0","result":{"translatedText":"I love you."}}} https://openapi.naver.com/v1/language/translate
  • 6. (기존) 14개의 사항 입력 (변경) 4개의 필수 사항 입력 제휴 신청 간소화 기존에 제휴 신청을 하려면 회사명부터 담당자 연락처 까지 14개의 항목을 입력해야 했지만, API 사용 목적과 예상 사용량, 활용화면만 올려 주시면 됩니다. 또한 제휴 진행 상황을 확인하는 화면도 함께 추가하였습니다. [기존] [변경]
  • 7. API 마이그레이션 FAQ • 마이그레이션 해야 하는 이유 – 2016년 1월 26일에 개편된 개발자센터를 오픈하면서 API 인증체계를 개선하였습니다. – 이에 따라 API 호출하는 방식도 함께 변경하였습니다. . • 누가 마이그레이션 대상인가요? – 네이버와 별도의 제휴키를 발급받아 사용하는 개발사 – 구 개발자센터에서 API 키를 발급받아 사용하는 개발사 • 언제까지 마이그레이션 해야 하나요? – 기존 API 호출 방식은 2016년 12월 말까지만 지원합니다. – 따라서 2016년 12월 중순까지 마이그레이션 완료해야 하며, 이는 제휴신청 승인까지 포함이므로 2주 이상 여 유를 두시는 것이 좋습니다. • 마이그레이션 작업은 어떻게 해야 하나요? – 네이버 개발자센터에서 처리할 것들 • 애플리케이션 정보 등록 및 설정 • 제휴 신청 – 애플리케이션에서 해야할 것들 • API 호출 방법 변경 • 서비스 URL과 애플리케이션 등록 정보 확인
  • 8. (기존) 각 API 별로 API키를 발급 받아 사용 (변경) API 이용신청 또는 애플리케이션 등록 후 API 권한 설정화면에서 사용할 API 체크 API 키 대신API 이용 신청 기존에는 각 API별로 API 키를 발급받아 사용하였지만, 이제는 API 이용 신청 또는 애플리케이션을 등록한 다음, API 권한 설 정화면에서 사용하려는 API를 체크해 주시면 됩니다. API를 호출할 때는 API 키 대신 애플리케이션 등록 시 발급 받은 클라이 언트아이디와 시크릿 값을 HTTP헤더에 전송하는 것으로 변경되었습니다. [기존] [변경]
  • 9. API 호출 방법 [비로그인 오픈API] [로그인오픈API] • 방법 – REST API 호출 – HTTP 헤더에 클라이언트 아이디와 시 크릿값 포함해서 호출 • 대상 – 지도, 검색, 좌표변환, 단축 URL – 음성인식, 기계번역, 음성합성, 캡차 • 주의 사항 – 클라이언트 아이디와 시크릿은 반드시 헤 더값에 포함해야 함 – http method 일치 여부 확인 (예: 검색 은 GET, 기계번역은 POST) – 텍스트는 대부분 UTF-8로 인코딩 필요 (예: 검색 쿼리, 기계번역 텍스트 값) • 방법 – REST API 호출 – 로그인 인증 후 발급 받은 접근 토큰 값 을 Authorization 헤더에 포함해서 호 출 • 대상 – 회원 프로필 조회, 블로그 글쓰기, 카페 가입 및 글쓰기, 캘린더 일정 담기 • 주의 사항 – 단체아이디는 네이버 로그인이 지원되지 않으므로 개인아이디로 호출해야함 – 카페 글쓰기 API에서 텍스트는 UTF-8 -> MS949로 이중 인코딩을 해야 한글이 깨 지지 않음
  • 10. 검색API 호출 데모–1단계:애플리케이션 등록 (경로1) Application ­ 애플리케이션 등록 (경로2) 검색 API 개발 가이드 ­ 오픈API이용 버튼 클릭
  • 11. 검색API 호출 데모–2단계:서비스 환경 설정 • 주의: 서비스 URL은 실제 환경과 일치해야 인증오류가 발생하지 않음 • 로컬에서 개발 중일 때는 127.0.0.1:포트번호로 설정
  • 12. 검색API 호출 데모–3단계:클라이언트 아이디/시크릿 확인 • 주의: 클라이언트 시크릿 값은 ‘보기’버튼 클릭하면 재발급 가능
  • 13. 검색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&sta rt=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); }