네이버 검색 API 연동 에러 관련하여 채택완료
까불이
8년 전
조회 5,094
안녕하세요?
기존에 공개된 소스를 사용하여 네이버 검색 API를 적용하려는데,
오류가 납니다.
클라이언트 아이디와 비밀번호는 제대로 입력을 했구요,
다른 분들이 잘 사용하시는 소스라서 특별히 안될 이유가 없다고 보는데요,
객체를 생성할 수 없다면서 죽어 버립니다.
원인이 무엇일까요?
</p><p>class NaverProxy {</p><p> public function queryNaver($query, $target) {</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$client_id = "xxxxx";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$client_secret = "yyy";</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$query = urlencode("버스");</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$target = "news";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$url = "<a href="<a href="https://openapi.naver.com/v1/search/" target="_blank" rel="noopener noreferrer">https://openapi.naver.com/v1/search/</a>"><a href="https://openapi.naver.com/v1/search/" target="_blank" rel="noopener noreferrer">https://openapi.naver.com/v1/search/</a></a>".$target.".xml";</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$url = sprintf("%s?query=%s&display=4&start=1", $url, $query);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$is_post = false;</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$ch = curl_init();</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>curl_setopt($ch, CURLOPT_URL, $url);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>//curl_setopt($ch, CURLOPT_GET, $is_post);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$headers = array();</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$headers[] = "X-Naver-Client-Id: ".$client_id;</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$headers[] = "X-Naver-Client-Secret: ".$client_secret;</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>$data = curl_exec ($ch);</p><p><span class="Apple-tab-span" style="white-space:pre"> </span>curl_close ($ch);</p><p> </p><p><span class="Apple-tab-span" style="white-space:pre"> </span>return $data;</p><p> }</p><p>}</p><p> </p><p>$naverproxy = new NaverProxy();</p><p> </p><p>$xmlstring = $naverproxy -> queryNaver($_POST['query'], $_POST['target']);</p><p> </p><p>$xml = simplexml_load_string($xmlstring) or die("에러: 객체를 생성할 수 없습니다");</p><p style="margin-left: 0px;"> </p><p>
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
8년 전
0 으로 나온다는건 호스트에 접속할수 없을때 나오는 리턴값입니다.
이렇게 에러 확인해보시고
print curl_error($ch);
쉘에서 이렇게 실행시켜보세요
http://static.se2.naver.com/static/img/bg_b1.png) repeat;_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://static.se2.naver.com/static/img/bg_b1.png',sizingMethod='scale');color:#888888;">
curl "https://openapi.naver.com/v1/search/blog.xml?query=%EB%A6%AC%EB%B7%B0&display=10&start=1&sort=sim" \ -H "X-Naver-Client-Id: {애플리케이션 등록 시 발급받은 client id 값}" \ -H "X-Naver-Client-Secret: {애플리케이션 등록 시 발급받은 client secret 값}" -v
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
네이버에서 예시한 소스로 테스트를 해보니 status_code가 0으로 나옵니다.
그렇다면 아예 네이버에 접속해서 결과를 못 받아오고 있는 상황인가요?