테스트 사이트 - 개발 중인 베타 버전입니다

네이버 검색open api에서.. 채택완료

하야하라 8년 전 조회 6,063

</p><p><span class="com">// 네이버 검색 Open API 예제 - 블로그 검색</span><span class="pln">
</span><span class="pun"><?</span><span class="pln">php
  $client_id </span><span class="pun">=</span><span class="pln"> </span><span class="str">"YOUR_CLIENT_ID"</span><span class="pun">;</span><span class="pln">
  $client_secret </span><span class="pun">=</span><span class="pln"> </span><span class="str">"YOUR_CLIENT_SECRET"</span><span class="pun">;</span><span class="pln">
  $encText </span><span class="pun">=</span><span class="pln"> urlencode</span><span class="pun">(</span><span class="str">"네이버오픈API"</span><span class="pun">);</span><span class="pln">
  $url </span><span class="pun">=</span><span class="pln"> </span><span class="str">"<a href="<a href="https://openapi.naver.com/v1/search/blog.xml?query=" target="_blank" rel="noopener noreferrer">https://openapi.naver.com/v1/search/blog.xml?query=</a>"><a href="https://openapi.naver.com/v1/search/blog.xml?query=" target="_blank" rel="noopener noreferrer">https://openapi.naver.com/v1/search/blog.xml?query=</a></a>"</span><span class="pun">.</span><span class="pln">$encText</span><span class="pun">;</span><span class="pln"> </span><span class="com">// json 결과</span><span class="pln">
</span><span class="com">//  $url = "<a href="<a href="https://openapi.naver.com/v1/search/blog.xml?query=" target="_blank" rel="noopener noreferrer">https://openapi.naver.com/v1/search/blog.xml?query=</a>"><a href="https://openapi.naver.com/v1/search/blog.xml?query=" target="_blank" rel="noopener noreferrer">https://openapi.naver.com/v1/search/blog.xml?query=</a></a>".$encText; // xml 결과</span><span class="pln">
  $is_post </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">false</span><span class="pun">;</span><span class="pln">
  $ch </span><span class="pun">=</span><span class="pln"> curl_init</span><span class="pun">();</span><span class="pln">
  curl_setopt</span><span class="pun">(</span><span class="pln">$ch</span><span class="pun">,</span><span class="pln"> CURLOPT_URL</span><span class="pun">,</span><span class="pln"> $url</span><span class="pun">);</span><span class="pln">
  curl_setopt</span><span class="pun">(</span><span class="pln">$ch</span><span class="pun">,</span><span class="pln"> CURLOPT_POST</span><span class="pun">,</span><span class="pln"> $is_post</span><span class="pun">);</span><span class="pln">
  curl_setopt</span><span class="pun">(</span><span class="pln">$ch</span><span class="pun">,</span><span class="pln"> CURLOPT_RETURNTRANSFER</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">);</span><span class="pln">
  $headers </span><span class="pun">=</span><span class="pln"> array</span><span class="pun">();</span><span class="pln">
  $headers</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"X-Naver-Client-Id: "</span><span class="pun">.</span><span class="pln">$client_id</span><span class="pun">;</span><span class="pln">
  $headers</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="str">"X-Naver-Client-Secret: "</span><span class="pun">.</span><span class="pln">$client_secret</span><span class="pun">;</span><span class="pln">
  curl_setopt</span><span class="pun">(</span><span class="pln">$ch</span><span class="pun">,</span><span class="pln"> CURLOPT_HTTPHEADER</span><span class="pun">,</span><span class="pln"> $headers</span><span class="pun">);</span><span class="pln">
  $response </span><span class="pun">=</span><span class="pln"> curl_exec </span><span class="pun">(</span><span class="pln">$ch</span><span class="pun">);</span><span class="pln">
  $status_code </span><span class="pun">=</span><span class="pln"> curl_getinfo</span><span class="pun">(</span><span class="pln">$ch</span><span class="pun">,</span><span class="pln"> CURLINFO_HTTP_CODE</span><span class="pun">);</span><span class="pln">
  echo </span><span class="str">"status_code:"</span><span class="pun">.</span><span class="pln">$status_code</span><span class="pun">.</span><span class="str">"</span>
<span class="str">"</span><span class="pun">;</span><span class="pln">
  curl_close </span><span class="pun">(</span><span class="pln">$ch</span><span class="pun">);</span><span class="pln">
  </span><span class="kwd">if</span><span class="pun">(</span><span class="pln">$status_code </span><span class="pun">==</span><span class="pln"> </span><span class="lit">200</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    echo $response</span><span class="pun">;</span><span class="pln">
  </span><span class="pun">}</span><span class="pln"> </span><span class="kwd">else</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    echo </span><span class="str">"Error 내용:"</span><span class="pun">.</span><span class="pln">$response</span><span class="pun">;</span><span class="pln">
  </span><span class="pun">}</span><span class="pln">
</span><span class="pun">?></span><span class="pln">

네이버 검색open api 예제에서

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

 

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

답변 4개

채택된 답변
+20 포인트

$view['wr_subject'] 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

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

urlencode $view['wr_subject']; 로 변경해 보았습니다만 안되는군요 ㅡㅜ

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

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

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

global함수로 해결했습니다 

로그인 후 평가할 수 있습니다

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

만두야닷컴

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

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

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

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

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

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

 

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

 

 

 

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

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

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

8년 전

던져주는 url이

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

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

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

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

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

불러와져야합니다.

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

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

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

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

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

로그인