웹 개발 & 정보/PHP

[PHP] 네이버 검색 API로 내 사이트에 뉴스 검색 결과 출력하기

Rozera 2018. 8. 28. 17:30
반응형


이번 포스팅에서는 네이버 오픈 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에 대한 포스팅은 여기까지입니다. 


잘못된 부분이나 궁금한 점이 있다면 댓글 남겨주세요. 


감사합니다. 


반응형