네이버 검색open api에서.. 채택완료
</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개
답변에 대한 댓글 5개
이거 아닌가요?
이렇게 해도 안되네요;;;
$encText = urlencode($view['wr_subject']);
이거 아닌가요?
urlencode $view['wr_subject']; 로 변경해 보았습니다만 안되는군요 ㅡㅜ
댓글을 작성하려면 로그인이 필요합니다.
감사합니다 댓글주신분들..
실소스에 클래스함수로 싸여져 있어 wr_subject를 불러오지 못하는 거였습니다.
global함수로 해결했습니다
댓글을 작성하려면 로그인이 필요합니다.
$encText = urlencode($view[wr_subject]);
그냥 이상태로 해도 잘되고 있는데요?
실제 돌아가는 페이지에서 적용해봤습니다.
client_id 나 client_seceret 이 틀렸나 다시 확인해보시고 맞으시다면
네이버 개발자 센터로 가셔서 해당 어플리케이션으로 가신후 api 권한 관리에 비로그인 오픈 api 에 검색 api 체크 되어있는지 확인 해보시고, 설정에서도 도메인명이나 이런게 맞는지 확인 해보시기 바랍니다.
아 또 curl 모듈이 설치되어있는 서버인지도 확인해보시구요.
그래도 안되면 어떤 오류가 발생하는지도 확인해 주시구요..
답변에 대한 댓글 2개
글제목이 만두 라면 만두로 블로그검색글이 추출되어야하는데 wr_subject값 자체를 불러들이지 못하는거 같습니다...
$query=urlencode("만두"); 수동 입력으로는 잘됩니다.
댓글을 작성하려면 로그인이 필요합니다.
던져주는 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개
게시판 뷰페이지내에서 사용하려 합니다.
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("euc-kr","utf-8",$view[wr_subject]);
변경해보았으나 안되는군요 ㅡㅜ
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인