네이버검색api 연동하기
본문
우선 이너넷에서 구한 소스입니다. 좀 길더라도 봐주세요.
-------------------------------------------------------
오픈 api를 적용하는 입장에서 가장중요한 검색요청에대한 가이드입니다.
요청변수중 target 이 중요합니다.
네이버 검색 target 은
블로그 blog, 뉴스 news, 카페 cafe, 이미지 image,
책 book, 영화 movie, 지식인 kin, 지역 local 등을 말합니다.
네이버 검색 api 서버는 지정한 target의 검색결과를 응답합니다.
그럼 실제로 구현해보겠습니다.
코드이그나이터를 사용해서 테스트했습니다.
코드는 그 점 감안하고 봐주세요.
NaverSearch.php
=====================================================================================================================
class NaverSearch{
var $key = "*******************"; // 사용자가 발급받은 오픈API 키
var $searchUrl = "http://openapi.naver.com/search"; // 오픈API 호출URL
var $target = "";
var $query = "";
function __construct() {
}
function query($query)
{
$url = sprintf("%s?query=%s&target=%s&key=%s&display=100", $this->searchUrl, $this->query, $this->target, $this->key);
$data =file_get_contents($url);
$xml = simplexml_load_string($data);
return $xml;
}
/**
* API의 결과를 Json 으로 encode 하려 반환하는 메소드
* XML을 직접 parsing 하지 않고 json으로 변환하여 반환한다.
*/
function getSearch()
{ $xml = $this->query($this->query);
$result = json_encode($xml);
return $result;
}
}
========================================================================================================================
naverproxy.php
========================================================================================================================
$this->load->library('NaverSearch');
$this->naversearch->target = "검색타깃";
$this->naversearch->query = "검색어";
echo $this->naversearch->getSearch();
========================================================================================================================
이제 클라이언트에서 검색결과를 출력해주는 것만 남았습니다.
search.html
========================================================================================================================
function callAjax(query) {
$.ajax({
url:'naverproxy.php',
dataType:'json',
type:'POST',
data:{'query':encodeURIComponent (query), 'target': 'blog'},
success:function(result){
if(result['channel']['display'] > 0){
for(var i in result['channel']['item']){
var item = result['channel']['item'][i];
}
}else{
}
}
});
};
========================================================================================================================
ajax를 이용해서 검색결과를 json으로 응답받고 파싱해서 화면에 출력하면 됩니다.
[출처] 네이버 개발자센터 오픈 api 검색 search api 연동하기|작성자 얍소프트
-----------------------------------------------
이해가 안되는 점은
- 위의 소스를 보면 NaverSearch.php , naverproxy.php, search.html 이렇게 3개의 파일로 설명하고 있는데 소스 어디에도 다음 파일로 결과값이나 쿼리값을 넘기는 내용이 없습니다.
- 위 소스대로 하면 search.html에 네이버검색 결과값이 그대로 출력되는 건지요?
- 코드이그나이터로 테스트했다고 하는데 그누보드 상태에서는 사용할 수 없는 건지요?
잘 아시는 분들께는 멍청한 질문이겠지만 저같은 문외한들한테는 참 어려운 것 같습니다.
네이버검색API를 그누보드에 연동하는 방법이나 소스 아시는 분들 좀 도와주세요
답변 4
궂이 CI로 되있는 소스를 바꾸기보다 api 예제 다른것도 많아서
그것 참고하는게 더좋을거같습니다만~ 위 내용도 단순히 검색어 던지면
json으로 받아서 화면 그대로 뿌려주는 소스에 지나지않습니다.
그누보드에도 얼마든지 적용가능합니다
저도 예전에 간단하게 테스트 해본적이 있습니다만
http://developer.naver.com/wiki/pages/Tutorial_Book_Ajax
오픈 api 사이트에서 나와있는 예제가 그나마 기초적이고 제일맞는거같네요
그대로 적용가능합니다
다른 예제가 많다고 하셨는데 저같은 까막눈에는 산삼이 풀로만 보여요ㅠㅠ
그누보드에 적용할 수 있는 소스 있으시면 좀 알려주세요~
톰소여z 님 덕분에 많이 배웠습니다.
드디어 성공했습니다. ^^
이제 남은 일은 돌아오는 결과값들을 보기 좋게 가공하는 일만 남았네요.
원리를 알지 못하고 방법을 찾으니 해결될 리가 없지요.
그냥 폼으로 값을 날리고 링크페이지에서 iframe으로 ... 어처구니 없지요? ㅎ
정말 감사합니다.
오늘도 이렇게 친절한 sir에서 소중한 한가지 배워갑니다.