이번 포스팅에서는 네이버 오픈 API와 PHP 를 사용하여, 네이버 뉴스 검색 결과를 내 사이트에 출력하는 방법을 알려드리겠습니다.
이 API는 사용 방법이 쉬우므로 비교적 짧은 포스팅이 될 것 같네요.
1. 뉴스 검색 API 개발 페이지로 접속 -> https://developers.naver.com/docs/search/news/
검색 API 페이지 접속 후, 오픈 API 이용 신청 버튼을 클릭합니다.
로그인 상태가 아니라면 네이버 아이디로 로그인 해주시면 됩니다.
2. 검색 API 애플리케이션 등록
API 등록 방법은 매우 간단합니다.
- 애플리케이션 이름 : 아무거나 적어도 상관없습니다.
- 사용 API : 건드리지 않아도 됩니다.
- 비로그인 오픈 API 서비스 환경 : WEB 설정 을 선택합니다.
WEB 설정을 선택하면 URL 적는 칸이 나오는데, 거기에 내 사이트의 도메인 주소를 적으시면 됩니다.
그리고 등록하기를 누릅니다.
인증이나 심사 등 특별한 과정을 거치지 않아도 바로 애플리케이션이 생성이 됩니다.
3. 검색 API 사용 방법
네이버 검색 API 가 등록이 되면, Client ID 와 Client Secret 이 발급됩니다.
이 2개의 값을 PHP 소스에서 사용하게 됩니다.
저는 아래와 같이 간단히 PHP 함수로 만들어보았습니다.
다른 어떤 방식으로 소스를 짜도 상관 없습니다.
PHP 소스)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?php // 네이버 뉴스 검색 API // 참고 https://developers.naver.com/docs/search/news/ // 사용법 naverSearchAPI(검색어, 정렬, 한페이지에 보여줄 개수, 검색 시작 위치); function naverNewsResult($query='', $sort='', $display=0, $start=0) { $api_url = ""; $client_id = "발급받은 Client ID 값"; $client_secret = "발급받은 Client Secret 값"; // 요청 URL $api_url .= "https://openapi.naver.com/v1/search/news.json"; // 뉴스 검색 결과 json // $api_url .= "https://openapi.naver.com/v1/search/news.xml"; // 뉴스 검색 결과 xml // 검색어, 필수 입력 $api_url .= "?query=".urlencode($query); // 정렬, sim (정확도순) or date(최신순). 없으면 default 값인 sim 으로 적용됨 if($sort != "") $api_url .= "&sort=".$sort; // 검색 시작 위치, 없으면 기본값 if($start > 0) $api_url .= "&start=".$start; // 한 페이지에 보여줄 개수, 없으면 기본값 if($display > 0) $api_url .= "&display=".$display; $ch = curl_init(); $ch_headers[] = "X-Naver-Client-Id: ".$client_id; $ch_headers[] = "X-Naver-Client-Secret: ".$client_secret; curl_setopt($ch, CURLOPT_URL, $api_url); curl_setopt($ch, CURLOPT_HTTPHEADER, $ch_headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); return $result; } ?> | cs |
13~14번 라인에서 검색 결과 값 출력 방식을 json, xml 둘 중 하나로 선택할 수 있습니다.
4. 네이버 뉴스에서 '태풍' 이라는 키워드를 최신순으로 검색한 결과
PHP 함수 사용 예시)
1 2 3 4 | <?php // 예시 echo naverNewsResult('태풍', 'date', 5); ?> | cs |
json 출력 결과)
실제 네이버 검색 결과)
사이트에 적용 예시)
API 결과값을 나름대로 가공해서 내 사이트에 원하는 방식으로 출력할 수 있습니다.
이 네이버 검색 API의 아쉬운 점은, 위와 같이 텍스트 상의 정보만 제공된다는 점입니다. (뉴스의 썸네일 이미지 정보는 제공되지 않음)
그래도 이렇게 간단하게 네이버 뉴스 검색 결과를 출력할 수 있어서, 유용하다고 생각하여 정리 겸 포스팅을 했습니다.
네이버 검색 API에 대한 포스팅은 여기까지입니다.
잘못된 부분이나 궁금한 점이 있다면 댓글 남겨주세요.
감사합니다.
'웹 개발 & 정보 > PHP' 카테고리의 다른 글
PHP 이미지 워터마크(텍스트&이미지) 삽입하기 (0) | 2020.11.10 |
---|---|
[PHP] 텔레그램 api로 알림(push) 받기 (1) | 2018.03.04 |
[PHP] PHP Mailer로 메일 전송 (네이버 아이디 사용) (4) | 2017.10.20 |
[PHP] 헤더를 이용한 파일 다운로드 구현 (1) | 2017.10.19 |
[PHP] curl 페이지 크롤링 함수 (0) | 2017.10.16 |