API 활용하기 (네이버)

2star_·7일 전
0

네이버 API 활용 방법 정리

네이버는 다양한 서비스와 함께 개발자를 위한 다양한 API를 제공합니다. 네이버 API를 활용하면 검색, 지도, 번역 등 네이버의 강력한 기능을 여러분의 애플리케이션에 통합할 수 있습니다.(출처-네이버)

1. 네이버 개발자 센터 회원가입 및 애플리케이션 등록

회원가입

네이버 개발자 센터(https://developers.naver.com)에 접속해서 진행

애플리케이션 등록

  1. 로그인 후 상단 메뉴에서 '애플리케이션'을 선택
  2. '애플리케이션 등록' 버튼을 클릭
  3. 애플리케이션 이름, 사용 API 서비스 등을 입력하고 등록

2. API 키 발급 받기

애플리케이션 등록이 완료되면 Client IDClient Secret이 발급된다.

3. 원하는 API 선택 및 문서 확인

네이버는 다양한 API를 제공한다.

각 API의 문서를 통해 사용 방법, 요청 및 응답 형식, 예제 코드 등을 확인

4. API 요청 구현하기

공통 사항

  • HTTP 요청 방식: GET 또는 POST
  • 인증 헤더: X-Naver-Client-IdX-Naver-Client-Secret를 사용

예제: 블로그 검색

import os
import sys
import urllib.request
encText = urllib.parse.quote("인공지능")
url = "https://openapi.naver.com/v1/search/blog?query=" + encText # JSON 결과
# url = "https://openapi.naver.com/v1/search/blog.xml?query=" + encText # XML 결과
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
response = urllib.request.urlopen(request)
rescode = response.getcode()
if(rescode==200):
    response_body = response.read()
    print(response_body.decode('utf-8'))
else:
    print("Error Code:" + rescode)
    

예제 2 : 라이브러리를 통해 검색

# requests 라이브러리 임포트
import requests
from urllib.parse import quote

# 검색어 설정
search_query = "인공지능"

# API 기본 URL
base_url = "https://openapi.naver.com/v1/search/blog"

# API 요청 헤더 설정
headers = {
    "X-Naver-Client-Id": client_id,
    "X-Naver-Client-Secret": client_secret
}

# API 요청 파라미터 설정
params = {
    "query": search_query,      # 검색어
    "display": 10,             # 검색 결과 출력 건수 (기본값: 10, 최대: 100)
    "start": 1,                # 검색 시작 위치 (기본값: 1, 최대: 1000)
    "sort": "sim"              # 정렬 방식 - sim: 정확도순, date: 날짜순
}


# GET 요청 보내기 (params 딕셔너리 사용)
response = requests.get( # 한글 자동으로 UTF-8인코딩 함
    base_url,
    headers=headers,
    params=params
)

# 응답 상태 코드 확인 및 결과 출력
if response.status_code == 200:
    # JSON 형식으로 응답 데이터 파싱
    result = response.json()
    print(result)
        
    # 전체 검색 결과 수 출력
    print(f"총 검색 결과: {result['total']} 건")
    print(f"현재 페이지: {params['start']} / {result['total']}")
    print("-" * 50)
    
    # 검색 결과 출력
    for item in result.get('items', []):
        print(f"제목: {item['title']}")
        print(f"블로거: {item['bloggername']}")
        print(f"작성일: {item['postdate']}")
        print(f"링크: {item['link']}")
        print(f"설명: {item['description']}")
        print("-" * 50)
else:
    # 에러 발생시 상태 코드와 에러 메시지 출력
    print(f"Error Code: {response.status_code}")
    print(f"Error Message: {response.text}")

주요 포인트

  • 인증 정보 설정: 발급받은 Client IDClient Secret를 헤더에 포함
  • 요청 파라미터: API 문서에 따라 필요한 파라미터를 설정
  • 에러 처리: 상태 코드 및 에러 메시지에 따른 예외 처리

API 사용 시 주의사항

(출처 - 네이버)

사용량 제한 확인

각 API마다 일일 호출 한도가 있습니다. 초과 시 서비스가 제한될 수 있으므로 문서를 통해 확인하고 필요한 경우 별도의 협의를 진행합니다.

에러 코드 및 메시지 처리

API 호출 시 발생할 수 있는 에러 코드와 메시지를 확인하고, 이에 대한 예외 처리를 구현합니다.

보안 유지

Client Secret 등 민감한 정보는 절대 소스 코드나 공개 저장소에 노출되지 않도록 주의합니다.


다양한 API 문서들을 확인하고 사용하기 전에 특강으로 여러 사이트의 API를 활용하는 법과 공식문서 참고내용들을 학습했다. 많은 양에 일단 네이버 API 활용하는 법과 예제를 간단히 올렸다

profile
안녕하세요.

0개의 댓글