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

네이버 검색 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개

SLOOP
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


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

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

SLOOP
8년 전

객체를 생성할수 없습니다 는 사용자가 출력하는 에러메시지고

네이버측에서 발생하는 에러메시지를 확인해봐야 합니다.

 

echo $xmlstring; 

 

해서 뭐가 출력되는지 확인해보세요 

 

 $xml = simplexml_load_string($xmlstring);

 

이렇게 변경해보시던가

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

답변에 대한 댓글 1개

까불이
8년 전
해보니 아무것도 출력이 안되구요,
네이버에서 예시한 소스로 테스트를 해보니 status_code가 0으로 나옵니다.
그렇다면 아예 네이버에 접속해서 결과를 못 받아오고 있는 상황인가요?

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

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

로그인