채택완료

네이버 검색open api에서..

2016-12-07 (수) 16:52:03 6,470
Copy
// 네이버 검색 Open API 예제 - 블로그 검색
<?php
  $client_id = "YOUR_CLIENT_ID";
  $client_secret = "YOUR_CLIENT_SECRET";
  $encText = urlencode("네이버오픈API");
  $url = "https://openapi.naver.com/v1/search/blog.xml?query=".$encText; // json 결과
//  $url = "https://openapi.naver.com/v1/search/blog.xml?query=".$encText; // xml 결과
  $is_post = false;
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_POST, $is_post);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $headers = array();
  $headers[] = "X-Naver-Client-Id: ".$client_id;
  $headers[] = "X-Naver-Client-Secret: ".$client_secret;
  curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
  $response = curl_exec ($ch);
  $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  echo "status_code:".$status_code."";
  curl_close ($ch);
  if($status_code == 200) {
    echo $response;
  } else {
    echo "Error 내용:".$response;
  }
?>

네이버 검색open api 예제에서

게시판뷰페이지내에 삽입시 $encText = urlencode("네이버오픈API");부분 질의를 게시판제목(wr_subject)으로 질의하게 하려면 어떻게 수정해야 할런지요?

 

|

답변 4개 / 댓글 10개

채택된 답변
+20 포인트
2016-12-07 (수) 17:04:58

$view['wr_subject'] 

답변에 대한 댓글 5개

$query =urlencode $view['wr_subject']; 안됩니다.ㅡㅜ
$query = urlencode($view['wr_subject']);
이거 아닌가요?
$query = urlencode($view['wr_subject']);
이렇게 해도 안되네요;;;
다시 코드를 보니 $query라는 변수가 아무 데서도 쓰인 데가 없네요.
$encText = urlencode($view['wr_subject']);
이거 아닌가요?
질문예제와 실적용함수가 달라 댓글을 잘못 달았네요 제가

urlencode $view['wr_subject']; 로 변경해 보았습니다만 안되는군요 ㅡㅜ
2016-12-08 (목) 20:40:14

감사합니다 댓글주신분들..

실소스에 클래스함수로 싸여져 있어 wr_subject를 불러오지 못하는 거였습니다.

global함수로 해결했습니다 

2016-12-08 (목) 01:09:39

$encText = urlencode($view[wr_subject]);

그냥 이상태로 해도 잘되고 있는데요?

실제 돌아가는 페이지에서 적용해봤습니다.

client_id 나 client_seceret 이 틀렸나 다시 확인해보시고 맞으시다면

네이버 개발자 센터로 가셔서 해당 어플리케이션으로 가신후 api 권한 관리에 비로그인 오픈 api 에 검색 api 체크 되어있는지 확인 해보시고, 설정에서도 도메인명이나 이런게 맞는지 확인 해보시기 바랍니다.

아 또 curl 모듈이 설치되어있는 서버인지도 확인해보시구요.

그래도 안되면 어떤 오류가 발생하는지도 확인해 주시구요..

답변에 대한 댓글 2개

2016-12-08 (목) 14:17:16
글 제목으로 검색한 글이 하나도 없는것 아닌가요??
게시판 view.skin.php내에 삽입한 상태인데
글제목이 만두 라면 만두로 블로그검색글이 추출되어야하는데 wr_subject값 자체를 불러들이지 못하는거 같습니다...
$query=urlencode("만두"); 수동 입력으로는 잘됩니다.

던져주는 url이

 $url = "https://openapi.naver.com/v1/search/blog.xml?query=".$encText; // json 결과

맞구여 query에 단어가 들어가는 부분맞습니다.

urlencode 여부는 상황에 따라 다른거구여

wr_subject 변수제목을 어디에서 불러오는건가여?

echo $view['wr_subject']해서 값이 불러와지나요?

불러와져야합니다.

 

인코딩 환경에 따라 다른거면 iconv()를 사용하세여

답변에 대한 댓글 3개

톰소여z 님 답변 감사합니다.
게시판 뷰페이지내에서 사용하려 합니다.
echo $view['wr_subject']는 불러와집니다.
$encText = urlencode("네이버오픈API"); 기본값으로 하면 네이버오픈API관련 블로그들은 검색되어집니다만,,
게시물제목이 코리아 라면 게시물변수제목을 따라 코리아 관련 블로그로 검색되고자 하고 싶은데.
$encText = urlencode($view['wr_subject']); 변경으로는 불러와지지가 않네요..
인코딩은 utf-8입니다.
인코딩 문제인거같네여

$encText = iconv("utf-8","euc-kr",$view[wr_subject]);
또는
$encText = iconv("euc-kr","utf-8",$view[wr_subject]);
$encText = iconv("utf-8","euc-kr",$view[wr_subject]);
또는
$encText = iconv("euc-kr","utf-8",$view[wr_subject]);
변경해보았으나 안되는군요 ㅡㅜ

답변을 작성하려면 로그인이 필요합니다.